// ********************************************************************** // // 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 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 addTemporary(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&); private: ObjectAdapterI(const ::IceInternal::InstancePtr&, const std::string&, const std::string&); virtual ~ObjectAdapterI(); friend ::IceInternal::ObjectAdapterFactory; ObjectPrx newProxy(const Identity&); bool isLocal(const ObjectPrx&); ::IceInternal::InstancePtr _instance; std::string _name; std::vector< IceInternal::IncomingConnectionFactoryPtr> _collectorFactories; ObjectDict _activeServantMap; ObjectDict::iterator _activeServantMapHint; std::map _locatorMap; std::map::iterator _locatorMapHint; }; } #endif