Loading libs/binder/include_rpc_unstable/binder_rpc_unstable.hpp +9 −0 Original line number Diff line number Diff line Loading @@ -20,7 +20,16 @@ extern "C" { struct AIBinder; // Starts an RPC server on a given port and a given root IBinder object. // This function sets up the server and joins before returning. bool RunRpcServer(AIBinder* service, unsigned int port); // Starts an RPC server on a given port and a given root IBinder object. // This function sets up the server, calls readyCallback with a given param, and // then joins before returning. bool RunRpcServerCallback(AIBinder* service, unsigned int port, void (*readyCallback)(void* param), void* param); AIBinder* RpcClient(unsigned int cid, unsigned int port); // Connect to an RPC server with preconnected file descriptors. Loading libs/binder/libbinder_rpc_unstable.cpp +8 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,8 @@ using android::base::unique_fd; extern "C" { bool RunRpcServer(AIBinder* service, unsigned int port) { bool RunRpcServerCallback(AIBinder* service, unsigned int port, void (*readyCallback)(void* param), void* param) { auto server = RpcServer::make(); server->iUnderstandThisCodeIsExperimentalAndIWillNotUseItInProduction(); if (status_t status = server->setupVsockServer(port); status != OK) { Loading @@ -38,6 +39,8 @@ bool RunRpcServer(AIBinder* service, unsigned int port) { return false; } server->setRootObject(AIBinder_toPlatformBinder(service)); if (readyCallback) readyCallback(param); server->join(); // Shutdown any open sessions since server failed. Loading @@ -45,6 +48,10 @@ bool RunRpcServer(AIBinder* service, unsigned int port) { return true; } bool RunRpcServer(AIBinder* service, unsigned int port) { return RunRpcServerCallback(service, port, nullptr, nullptr); } AIBinder* RpcClient(unsigned int cid, unsigned int port) { auto session = RpcSession::make(); if (status_t status = session->setupVsockClient(cid, port); status != OK) { Loading libs/binder/libbinder_rpc_unstable.map.txt +1 −0 Original line number Diff line number Diff line LIBBINDER_RPC_UNSTABLE_SHIM { # platform-only global: RunRpcServer; RunRpcServerCallback; RpcClient; RpcPreconnectedClient; local: Loading Loading
libs/binder/include_rpc_unstable/binder_rpc_unstable.hpp +9 −0 Original line number Diff line number Diff line Loading @@ -20,7 +20,16 @@ extern "C" { struct AIBinder; // Starts an RPC server on a given port and a given root IBinder object. // This function sets up the server and joins before returning. bool RunRpcServer(AIBinder* service, unsigned int port); // Starts an RPC server on a given port and a given root IBinder object. // This function sets up the server, calls readyCallback with a given param, and // then joins before returning. bool RunRpcServerCallback(AIBinder* service, unsigned int port, void (*readyCallback)(void* param), void* param); AIBinder* RpcClient(unsigned int cid, unsigned int port); // Connect to an RPC server with preconnected file descriptors. Loading
libs/binder/libbinder_rpc_unstable.cpp +8 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,8 @@ using android::base::unique_fd; extern "C" { bool RunRpcServer(AIBinder* service, unsigned int port) { bool RunRpcServerCallback(AIBinder* service, unsigned int port, void (*readyCallback)(void* param), void* param) { auto server = RpcServer::make(); server->iUnderstandThisCodeIsExperimentalAndIWillNotUseItInProduction(); if (status_t status = server->setupVsockServer(port); status != OK) { Loading @@ -38,6 +39,8 @@ bool RunRpcServer(AIBinder* service, unsigned int port) { return false; } server->setRootObject(AIBinder_toPlatformBinder(service)); if (readyCallback) readyCallback(param); server->join(); // Shutdown any open sessions since server failed. Loading @@ -45,6 +48,10 @@ bool RunRpcServer(AIBinder* service, unsigned int port) { return true; } bool RunRpcServer(AIBinder* service, unsigned int port) { return RunRpcServerCallback(service, port, nullptr, nullptr); } AIBinder* RpcClient(unsigned int cid, unsigned int port) { auto session = RpcSession::make(); if (status_t status = session->setupVsockClient(cid, port); status != OK) { Loading
libs/binder/libbinder_rpc_unstable.map.txt +1 −0 Original line number Diff line number Diff line LIBBINDER_RPC_UNSTABLE_SHIM { # platform-only global: RunRpcServer; RunRpcServerCallback; RpcClient; RpcPreconnectedClient; local: Loading