summaryrefslogtreecommitdiff
path: root/cppe/src/IceE/ObjectAdapterFactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'cppe/src/IceE/ObjectAdapterFactory.h')
-rw-r--r--cppe/src/IceE/ObjectAdapterFactory.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/cppe/src/IceE/ObjectAdapterFactory.h b/cppe/src/IceE/ObjectAdapterFactory.h
new file mode 100644
index 00000000000..3dd8c5c7d3c
--- /dev/null
+++ b/cppe/src/IceE/ObjectAdapterFactory.h
@@ -0,0 +1,50 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved.
+//
+// This copy of Ice is licensed to you under the terms described in the
+// ICEE_LICENSE file included in this distribution.
+//
+// **********************************************************************
+
+#ifndef ICEE_OBJECT_ADAPTER_FACTORY_H
+#define ICEE_OBJECT_ADAPTER_FACTORY_H
+
+#include <IceE/Shared.h>
+#include <IceE/Mutex.h>
+#include <IceE/Monitor.h>
+
+#include <IceE/ObjectAdapterF.h>
+#include <IceE/ProxyF.h>
+#include <IceE/CommunicatorF.h>
+#include <IceE/InstanceF.h>
+
+namespace IceEInternal
+{
+
+class ObjectAdapterFactory : public ::IceE::Shared, public ::IceE::Monitor< ::IceE::Mutex>
+{
+public:
+
+ void shutdown();
+ void waitForShutdown();
+
+ ::IceE::ObjectAdapterPtr createObjectAdapter(const std::string&);
+ ::IceE::ObjectAdapterPtr findObjectAdapter(const ::IceE::ObjectPrx&);
+ void flushBatchRequests() const;
+
+private:
+
+ ObjectAdapterFactory(const InstancePtr&, const ::IceE::CommunicatorPtr&);
+ virtual ~ObjectAdapterFactory();
+ friend class Instance;
+
+ InstancePtr _instance;
+ ::IceE::CommunicatorPtr _communicator;
+ std::map<std::string, ::IceE::ObjectAdapterPtr> _adapters;
+ bool _waitForShutdown;
+};
+
+}
+
+#endif