diff options
Diffstat (limited to 'cpp/src/Ice/Reference.h')
-rw-r--r-- | cpp/src/Ice/Reference.h | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/cpp/src/Ice/Reference.h b/cpp/src/Ice/Reference.h index 04fff0580eb..977a3f68844 100644 --- a/cpp/src/Ice/Reference.h +++ b/cpp/src/Ice/Reference.h @@ -13,8 +13,12 @@ #include <IceUtil/Shared.h> #include <Ice/ReferenceF.h> +#include <Ice/ReferenceFactoryF.h> #include <Ice/EndpointF.h> #include <Ice/InstanceF.h> +#include <Ice/RouterF.h> +#include <Ice/RouterInfoF.h> +#include <Ice/ObjectAdapterF.h> #include <Ice/Identity.h> namespace IceInternal @@ -33,14 +37,9 @@ public: ModeBatchOneway, ModeDatagram, ModeBatchDatagram, - ModeBatchLast = ModeBatchDatagram + ModeLast = ModeBatchDatagram }; - Reference(const InstancePtr&, const Ice::Identity&, const std::string&, Mode, bool, - const std::vector<EndpointPtr>&, const std::vector<EndpointPtr>&); - Reference(const InstancePtr&, const std::string&); - Reference(const Ice::Identity&, BasicStream*); - bool operator==(const Reference&) const; bool operator!=(const Reference&) const; bool operator<(const Reference&) const; @@ -63,8 +62,10 @@ public: const std::string facet; const Mode mode; const bool secure; - const std::vector<EndpointPtr> origEndpoints; // Original endpoints - const std::vector<EndpointPtr> endpoints; // Actual endpoints (set by a location forward) + const std::vector<EndpointPtr> origEndpoints; // Original endpoints. + const std::vector<EndpointPtr> endpoints; // Actual endpoints, changed by a location forwards. + const RouterInfoPtr routerInfo; // Null if no router is used. + const Ice::ObjectAdapterPtr reverseAdapter; // For reverse communications using the adapter's incoming connections. const Ice::Int hashValue; // @@ -77,9 +78,16 @@ public: ReferencePtr changeMode(Mode) const; ReferencePtr changeSecure(bool) const; ReferencePtr changeEndpoints(const std::vector<EndpointPtr>&) const; + ReferencePtr changeRouter(const ::Ice::RouterPrx&) const; + ReferencePtr changeDefault() const; private: + Reference(const InstancePtr&, const Ice::Identity&, const std::string&, Mode, bool, + const std::vector<EndpointPtr>&, const std::vector<EndpointPtr>&, + const RouterInfoPtr&, const Ice::ObjectAdapterPtr&); + friend class ReferenceFactory; + void calcHashValue(); }; |