// ********************************************************************** // // Copyright (c) 2001 // Mutable Realms, Inc. // Huntsville, AL, USA // // All Rights Reserved // // ********************************************************************** #ifndef ICE_PROTOCOL_PLUGIN_FACADE_H #define ICE_PROTOCOL_PLUGIN_FACADE_H #include #include #include #include #include namespace IceInternal { // // Global function to obtain a ProtocolPluginFacade given a Communicator // instance. // ICE_PROTOCOL_API ProtocolPluginFacadePtr getProtocolPluginFacade(const Ice::CommunicatorPtr&); // // ProtocolPluginFacade wraps the internal operations that protocol // plug-ins may need. // class ICE_PROTOCOL_API ProtocolPluginFacade : public ::IceUtil::Shared { public: // // Get the Communicator instance with which this facade is // associated. // Ice::CommunicatorPtr getCommunicator() const; // // Get the default hostname to be used in endpoints. // std::string getDefaultHost() const; // // Get the network trace level and category name. // int getNetworkTraceLevel() const; const char* getNetworkTraceCategory() const; // // Register an EndpointFactory. // void addEndpointFactory(const EndpointFactoryPtr&) const; private: ProtocolPluginFacade(const InstancePtr&); friend ICE_PROTOCOL_API ProtocolPluginFacadePtr getProtocolPluginFacade(const Ice::CommunicatorPtr&); InstancePtr _instance; }; } #endif