diff options
Diffstat (limited to 'cpp/src/Ice/ObjectAdapterI.h')
-rw-r--r-- | cpp/src/Ice/ObjectAdapterI.h | 55 |
1 files changed, 31 insertions, 24 deletions
diff --git a/cpp/src/Ice/ObjectAdapterI.h b/cpp/src/Ice/ObjectAdapterI.h index f4fd31e1639..bad7a896c87 100644 --- a/cpp/src/Ice/ObjectAdapterI.h +++ b/cpp/src/Ice/ObjectAdapterI.h @@ -36,9 +36,14 @@ namespace Ice { class ObjectAdapterI; -typedef IceUtil::Handle<ObjectAdapterI> ObjectAdapterIPtr; +ICE_DEFINE_PTR(ObjectAdapterIPtr, ObjectAdapterI); + +class ObjectAdapterI : public ObjectAdapter, + public IceUtil::Monitor<IceUtil::RecMutex> +#ifdef ICE_CPP11_MAPPING + , public std::enable_shared_from_this<ObjectAdapterI> +#endif -class ObjectAdapterI : public ObjectAdapter, public IceUtil::Monitor<IceUtil::RecMutex> { public: @@ -52,12 +57,12 @@ public: virtual void deactivate(); virtual void waitForDeactivate(); virtual bool isDeactivated() const; - virtual void destroy(); + virtual void destroy() ICE_NOEXCEPT; - virtual ObjectPrx add(const ObjectPtr&, const Identity&); - virtual ObjectPrx addFacet(const ObjectPtr&, const Identity&, const std::string&); - virtual ObjectPrx addWithUUID(const ObjectPtr&); - virtual ObjectPrx addFacetWithUUID(const ObjectPtr&, const std::string&); + virtual ObjectPrxPtr add(const ObjectPtr&, const Identity&); + virtual ObjectPrxPtr addFacet(const ObjectPtr&, const Identity&, const std::string&); + virtual ObjectPrxPtr addWithUUID(const ObjectPtr&); + virtual ObjectPrxPtr addFacetWithUUID(const ObjectPtr&, const std::string&); virtual void addDefaultServant(const ObjectPtr&, const std::string&); virtual ObjectPtr remove(const Identity&); virtual ObjectPtr removeFacet(const Identity&, const std::string&); @@ -66,7 +71,7 @@ public: virtual ObjectPtr find(const Identity&) const; virtual ObjectPtr findFacet(const Identity&, const std::string&) const; virtual FacetMap findAllFacets(const Identity&) const; - virtual ObjectPtr findByProxy(const ObjectPrx&) const; + virtual ObjectPtr findByProxy(const ObjectPrxPtr&) const; virtual ObjectPtr findDefaultServant(const std::string&) const; @@ -74,20 +79,21 @@ public: virtual ServantLocatorPtr removeServantLocator(const std::string&); virtual ServantLocatorPtr findServantLocator(const std::string&) const; - virtual ObjectPrx createProxy(const Identity&) const; - virtual ObjectPrx createDirectProxy(const Identity&) const; - virtual ObjectPrx createIndirectProxy(const Identity&) const; - - virtual void setLocator(const LocatorPrx&); - virtual Ice::LocatorPrx getLocator() const; - virtual void refreshPublishedEndpoints(); + virtual ObjectPrxPtr createProxy(const Identity&) const; + virtual ObjectPrxPtr createDirectProxy(const Identity&) const; + virtual ObjectPrxPtr createIndirectProxy(const Identity&) const; + virtual void setLocator(const LocatorPrxPtr&); + virtual Ice::LocatorPrxPtr getLocator() const; virtual EndpointSeq getEndpoints() const; + + virtual void refreshPublishedEndpoints(); virtual EndpointSeq getPublishedEndpoints() const; + virtual void setPublishedEndpoints(const EndpointSeq&); - bool isLocal(const ObjectPrx&) const; + bool isLocal(const ObjectPrxPtr&) const; - void flushAsyncBatchRequests(const IceInternal::CommunicatorFlushBatchAsyncPtr&); + void flushAsyncBatchRequests(const IceInternal::CommunicatorFlushBatchAsyncPtr&, CompressBatch); void updateConnectionObservers(); void updateThreadObservers(); @@ -100,21 +106,22 @@ public: IceInternal::ACMConfig getACM() const; size_t messageSizeMax() const { return _messageSizeMax; } -private: - ObjectAdapterI(const IceInternal::InstancePtr&, const CommunicatorPtr&, const IceInternal::ObjectAdapterFactoryPtr&, const std::string&, bool); virtual ~ObjectAdapterI(); - void initialize(const RouterPrx&); + +private: + + void initialize(const RouterPrxPtr&); friend class IceInternal::ObjectAdapterFactory; - ObjectPrx newProxy(const Identity&, const std::string&) const; - ObjectPrx newDirectProxy(const Identity&, const std::string&) const; - ObjectPrx newIndirectProxy(const Identity&, const std::string&, const std::string&) const; + ObjectPrxPtr newProxy(const Identity&, const std::string&) const; + ObjectPrxPtr newDirectProxy(const Identity&, const std::string&) const; + ObjectPrxPtr newIndirectProxy(const Identity&, const std::string&, const std::string&) const; void checkForDeactivation() const; std::vector<IceInternal::EndpointIPtr> parseEndpoints(const std::string&, bool) const; std::vector<IceInternal::EndpointIPtr> parsePublishedEndpoints(); - void updateLocatorRegistry(const IceInternal::LocatorInfoPtr&, const Ice::ObjectPrx&); + void updateLocatorRegistry(const IceInternal::LocatorInfoPtr&, const Ice::ObjectPrxPtr&); bool filterProperties(Ice::StringSeq&); enum State |