/* * Copyright (C) 2016 Simon Fels * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License version 3, as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * */ #ifndef ANBOX_ANDROID_HOST_CONNECTOR_H_ #define ANBOX_ANDROID_HOST_CONNECTOR_H_ #include #include #include namespace anbox { namespace rpc { class PendingCallCache; class Channel; } // namespace rpc class LocalSocketConnection; class MessageProcessor; class AndroidApiSkeleton; class PlatformApiStub; class HostConnector { public: HostConnector(); ~HostConnector(); void start(); void stop(); std::shared_ptr platform_api_stub() const; private: void main_loop(); std::shared_ptr socket_; std::shared_ptr pending_calls_; std::shared_ptr android_api_skeleton_; std::shared_ptr message_processor_; std::shared_ptr rpc_channel_; std::shared_ptr platform_api_stub_; std::thread thread_; std::atomic running_; }; } // namespace anbox #endif