summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ReferenceFactory.h
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-01-14 18:43:01 +0000
committerMarc Laukien <marc@zeroc.com>2002-01-14 18:43:01 +0000
commitf453785066eff4e8d9f5c7fd63bd01b4260020ed (patch)
tree1410e9fc19a52042879f9f06fe9e6c1ecb443e2a /cpp/src/Ice/ReferenceFactory.h
parentfile ServerBlobject.cpp was initially added on branch glacier. (diff)
downloadice-f453785066eff4e8d9f5c7fd63bd01b4260020ed.tar.bz2
ice-f453785066eff4e8d9f5c7fd63bd01b4260020ed.tar.xz
ice-f453785066eff4e8d9f5c7fd63bd01b4260020ed.zip
glacier intergration
Diffstat (limited to 'cpp/src/Ice/ReferenceFactory.h')
-rw-r--r--cpp/src/Ice/ReferenceFactory.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/cpp/src/Ice/ReferenceFactory.h b/cpp/src/Ice/ReferenceFactory.h
new file mode 100644
index 00000000000..e6203f884cf
--- /dev/null
+++ b/cpp/src/Ice/ReferenceFactory.h
@@ -0,0 +1,51 @@
+// **********************************************************************
+//
+// Copyright (c) 2002
+// MutableRealms, Inc.
+// Huntsville, AL, USA
+//
+// All Rights Reserved
+//
+// **********************************************************************
+
+#ifndef ICE_REFERENCE_FACTORY_H
+#define ICE_REFERENCE_FACTORY_H
+
+#include <IceUtil/Shared.h>
+#include <IceUtil/Mutex.h>
+#include <Ice/ReferenceFactoryF.h>
+#include <Ice/Reference.h> // For Reference::Mode
+#include <set>
+
+namespace IceInternal
+{
+
+class ReferenceFactory : public ::IceUtil::Shared, public ::IceUtil::Mutex
+{
+public:
+
+ ReferencePtr create(const Ice::Identity&, const std::string&, Reference::Mode, bool,
+ const std::vector<EndpointPtr>&, const std::vector<EndpointPtr>&,
+ const RouterInfoPtr&, const Ice::ObjectAdapterPtr&);
+ ReferencePtr create(const std::string&);
+ ReferencePtr create(const Ice::Identity&, BasicStream*);
+
+ void setDefaultRouter(const ::Ice::RouterPrx&);
+ Ice::RouterPrx getDefaultRouter() const;
+
+private:
+
+ ReferenceFactory(const InstancePtr&);
+ void destroy();
+ friend class Instance;
+
+ InstancePtr _instance;
+ Ice::RouterPrx _defaultRouter;
+ std::set<ReferencePtr> _references;
+ std::set<ReferencePtr>::iterator _referencesHint;
+ int _evict;
+};
+
+}
+
+#endif