// // Copyright (c) ZeroC, Inc. All rights reserved. // #ifndef GLACIER2_INSTANCE_H #define GLACIER2_INSTANCE_H #include #include #include #include #include #include #include namespace Glacier2 { class Instance { public: Instance(std::shared_ptr, std::shared_ptr, std::shared_ptr); std::shared_ptr communicator() const { return _communicator; } std::shared_ptr clientObjectAdapter() const { return _clientAdapter; } std::shared_ptr serverObjectAdapter() const { return _serverAdapter; } std::shared_ptr properties() const { return _properties; } std::shared_ptr logger() const { return _logger; } std::shared_ptr clientRequestQueueThread() const { return _clientRequestQueueThread; } std::shared_ptr serverRequestQueueThread() const { return _serverRequestQueueThread; } std::shared_ptr proxyVerifier() const { return _proxyVerifier; } std::shared_ptr sessionRouter() const { return _sessionRouter; } const std::shared_ptr& getObserver() const { return _observer; } void setSessionRouter(std::shared_ptr); void destroy(); private: const std::shared_ptr _communicator; const std::shared_ptr _properties; const std::shared_ptr _logger; const std::shared_ptr _clientAdapter; const std::shared_ptr _serverAdapter; const std::shared_ptr _clientRequestQueueThread; const std::shared_ptr _serverRequestQueueThread; const std::shared_ptr _proxyVerifier; std::shared_ptr _sessionRouter; const std::shared_ptr _observer; }; } // End namespace Glacier2 #endif