summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ReferenceFactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/ReferenceFactory.h')
-rw-r--r--cpp/src/Ice/ReferenceFactory.h36
1 files changed, 30 insertions, 6 deletions
diff --git a/cpp/src/Ice/ReferenceFactory.h b/cpp/src/Ice/ReferenceFactory.h
index 76d1452cc7a..e0bea176a3b 100644
--- a/cpp/src/Ice/ReferenceFactory.h
+++ b/cpp/src/Ice/ReferenceFactory.h
@@ -14,7 +14,7 @@
#include <IceUtil/Mutex.h>
#include <Ice/ReferenceFactoryF.h>
#include <Ice/Reference.h> // For Reference::Mode
-#include <set>
+#include <Ice/ConnectionIF.h>
namespace IceInternal
{
@@ -23,10 +23,37 @@ class ReferenceFactory : public ::IceUtil::Shared, public ::IceUtil::Mutex
{
public:
+ //
+ // Make a polymorphic copy of a reference.
+ //
+ ReferencePtr clone(const Reference* r) const;
+
+ //
+ // Create a direct reference.
+ //
+ ReferencePtr create(const Ice::Identity&, const Ice::Context&, const std::string&,
+ Reference::Mode, bool, const std::vector<EndpointPtr>&,
+ const RouterInfoPtr&, bool);
+ //
+ // Create an indirect reference.
+ //
+ ReferencePtr create(const Ice::Identity&, const Ice::Context&, const std::string&,
+ Reference::Mode, bool, const std::string&,
+ const RouterInfoPtr&, const LocatorInfoPtr&, bool);
+ //
+ // Create a fixed reference.
+ //
ReferencePtr create(const Ice::Identity&, const Ice::Context&, const std::string&,
- Reference::Mode, bool, const std::string&, const std::vector<EndpointPtr>&,
- const RouterInfoPtr&, const LocatorInfoPtr&, const std::vector<Ice::ConnectionIPtr>&, bool);
+ Reference::Mode, bool, bool, const std::vector<Ice::ConnectionIPtr>&);
+
+ //
+ // Create a reference from a string.
+ //
ReferencePtr create(const std::string&);
+
+ //
+ // Create a reference by unmarshaling it from a stream.
+ //
ReferencePtr create(const Ice::Identity&, BasicStream*);
void setDefaultRouter(const ::Ice::RouterPrx&);
@@ -44,9 +71,6 @@ private:
InstancePtr _instance;
Ice::RouterPrx _defaultRouter;
Ice::LocatorPrx _defaultLocator;
- std::set<ReferencePtr> _references;
- std::set<ReferencePtr>::iterator _referencesHint;
- int _evict;
};
}