// ********************************************************************** // // Copyright (c) 2001 // MutableRealms, Inc. // Huntsville, AL, USA // // All Rights Reserved // // ********************************************************************** #ifndef ICE_OBJECT_ADAPTER_I_H #define ICE_OBJECT_ADAPTER_I_H #include #include #include #include #include #include #include #include #include #include #include #include namespace Ice { class ObjectAdapterI; typedef IceUtil::Handle ObjectAdapterIPtr; class ObjectAdapterI : public ObjectAdapter, public ::IceUtil::Mutex { public: virtual std::string getName(); virtual CommunicatorPtr getCommunicator(); virtual void activate(); virtual void hold(); virtual void deactivate(); virtual ObjectPrx add(const ObjectPtr&, const Identity&); virtual ObjectPrx addWithUUID(const ObjectPtr&); virtual void remove(const Identity&); virtual void addServantLocator(const ServantLocatorPtr&, const std::string&); virtual void removeServantLocator(const std::string&); virtual ServantLocatorPtr findServantLocator(const std::string&); virtual ObjectPtr identityToServant(const Identity&); virtual ObjectPtr proxyToServant(const ObjectPrx&); virtual ObjectPrx createProxy(const Identity&); virtual ObjectPrx createReverseProxy(const Identity&); virtual void addRouter(const RouterPrx&); std::list< ::IceInternal::ConnectionPtr> getIncomingConnections() const; private: ObjectAdapterI(const ::IceInternal::InstancePtr&, const std::string&, const std::string&); virtual ~ObjectAdapterI(); friend ::IceInternal::ObjectAdapterFactory; ObjectPrx newProxy(const Identity&) const; bool isLocal(const ObjectPrx&) const; ::IceInternal::InstancePtr _instance; bool _deactivated; std::string _name; ObjectDict _activeServantMap; ObjectDict::iterator _activeServantMapHint; std::map _locatorMap; std::map::iterator _locatorMapHint; std::vector< ::IceInternal::IncomingConnectionFactoryPtr> _incomingConnectionFactories; std::vector< ::IceInternal::EndpointPtr> _routerEndpoints; }; } #endif