summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/SharedContext.h
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2006-07-20 21:34:50 +0000
committerBernard Normier <bernard@zeroc.com>2006-07-20 21:34:50 +0000
commitc00e785b3a362f7e51176fea2d45e2f02a29f298 (patch)
tree99846b76f8d3b2f64355d9d183cc704dd314a834 /cpp/src/Ice/SharedContext.h
parentMerge from R3_1_branch (diff)
downloadice-c00e785b3a362f7e51176fea2d45e2f02a29f298.tar.bz2
ice-c00e785b3a362f7e51176fea2d45e2f02a29f298.tar.xz
ice-c00e785b3a362f7e51176fea2d45e2f02a29f298.zip
Optimized context to avoid copies
Diffstat (limited to 'cpp/src/Ice/SharedContext.h')
-rw-r--r--cpp/src/Ice/SharedContext.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/cpp/src/Ice/SharedContext.h b/cpp/src/Ice/SharedContext.h
new file mode 100644
index 00000000000..00982f43b78
--- /dev/null
+++ b/cpp/src/Ice/SharedContext.h
@@ -0,0 +1,47 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2006 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef ICE_SHARED_CONTEXT_H
+#define ICE_SHARED_CONTEXT_H
+
+#include <IceUtil/Shared.h>
+#include <IceUtil/Handle.h>
+#include <string>
+#include <map>
+
+namespace Ice
+{
+typedef ::std::map< ::std::string, ::std::string> Context;
+}
+
+namespace IceInternal
+{
+
+class SharedContext : public IceUtil::Shared
+{
+public:
+
+ SharedContext(const Ice::Context& val) :
+ _val(val)
+ {
+ }
+
+ inline const Ice::Context& getValue()
+ {
+ return _val;
+ }
+
+private:
+
+ Ice::Context _val;
+};
+typedef IceUtil::Handle<SharedContext> SharedContextPtr;
+}
+
+#endif