summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Reference.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Reference.h')
-rw-r--r--cpp/src/Ice/Reference.h24
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();
};