// ********************************************************************** // // 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 namespace Ice { class ObjectAdapterI; typedef IceUtil::Handle ObjectAdapterIPtr; class ObjectAdapterI : public ObjectAdapter, public JTCMutex { public: virtual std::string getName(); virtual CommunicatorPtr getCommunicator(); virtual void activate(); virtual void hold(); virtual void deactivate(); virtual ObjectPrx add(const ObjectPtr&, const std::string&); virtual ObjectPrx addTemporary(const ObjectPtr&); virtual void remove(const std::string&); virtual void addServantLocator(const ServantLocatorPtr&, const std::string&); virtual void removeServantLocator(const std::string&); virtual ServantLocatorPtr findServantLocator(const std::string&); virtual ObjectPtr identityToServant(const ::std::string&); virtual ObjectPtr proxyToServant(const ObjectPrx&); virtual ObjectPrx createProxy(const ::std::string&); private: ObjectAdapterI(const ::IceInternal::InstancePtr&, const std::string&, const std::string&); virtual ~ObjectAdapterI(); friend ::IceInternal::ObjectAdapterFactory; ObjectPrx newProxy(const ::std::string&); bool isLocal(const ObjectPrx&); ::IceInternal::InstancePtr _instance; std::string _name; std::vector< IceInternal::CollectorFactoryPtr> _collectorFactories; std::map _activeServantMap; std::map::iterator _activeServantMapHint; std::map _locatorMap; std::map::iterator _locatorMapHint; }; } #endif