1 /* 2 * Copyright 2021 Google LLC 3 * SPDX-License-Identifier: MIT 4 */ 5 6 #include "proxy_common.h" 7 8 #include "proxy_client.h" 9 #include "proxy_renderer.h" 10 #include "proxy_server.h" 11 12 int proxy_renderer_init(const struct proxy_renderer_cbs * cbs,uint32_t flags)13proxy_renderer_init(const struct proxy_renderer_cbs *cbs, uint32_t flags) 14 { 15 proxy_renderer.cbs = cbs; 16 proxy_renderer.flags = flags; 17 18 proxy_renderer.server = proxy_server_create(); 19 if (!proxy_renderer.server) 20 goto fail; 21 22 proxy_renderer.client = 23 proxy_client_create(proxy_renderer.server, proxy_renderer.flags); 24 if (!proxy_renderer.client) 25 goto fail; 26 27 return 0; 28 29 fail: 30 proxy_renderer_fini(); 31 return -1; 32 } 33 34 void proxy_renderer_fini(void)35proxy_renderer_fini(void) 36 { 37 if (proxy_renderer.server) 38 proxy_server_destroy(proxy_renderer.server); 39 40 if (proxy_renderer.client) 41 proxy_client_destroy(proxy_renderer.client); 42 43 memset(&proxy_renderer, 0, sizeof(struct proxy_renderer)); 44 } 45 46 void proxy_renderer_reset(void)47proxy_renderer_reset(void) 48 { 49 proxy_client_reset(proxy_renderer.client); 50 } 51