// Copyright 2019 Fuzhou Rockchip Electronics Co., Ltd. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef _RK_DBUS_SERVER_H_ #define _RK_DBUS_SERVER_H_ #include #include #include #include #include #include #include "dbus_dbserver.h" #include "dbus_dispatcher.h" #include "dbus_media_control.h" #include "dbus_storage_manager.h" #include "server.h" #include "thread.h" namespace rockchip { namespace aiserver { class DBusServer : public Service { public: DBusServer() = delete; DBusServer(bool session, bool need_dbserver); virtual ~DBusServer(); virtual void start(void) override; virtual void stop(void) override; ThreadStatus status(void); int RegisterMediaControl(RTGraphListener *listener); int UnRegisterMediaControl(); std::shared_ptr GetDBserverProxy() { return dbserver_proxy_; } std::shared_ptr GetDBEventProxy() { return dbevent_proxy_; } std::shared_ptr GetStorageProxy() { return strorage_proxy_; } private: Thread::UniquePtr service_thread_; bool session_; bool need_dbserver_; std::unique_ptr media_control_; std::shared_ptr dbserver_proxy_; std::unique_ptr dbserver_listen_; std::shared_ptr dbevent_proxy_; std::unique_ptr dbevent_listen_; std::shared_ptr strorage_proxy_; std::unique_ptr strorage_listen_; }; } // namespace aiserver } // namespace rockchip #endif // _RK_DBUS_SERVER_H_