summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/CommunicatorI.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/CommunicatorI.h')
-rw-r--r--cpp/src/Ice/CommunicatorI.h53
1 files changed, 34 insertions, 19 deletions
diff --git a/cpp/src/Ice/CommunicatorI.h b/cpp/src/Ice/CommunicatorI.h
index 9cfd42e65f6..28015b424d3 100644
--- a/cpp/src/Ice/CommunicatorI.h
+++ b/cpp/src/Ice/CommunicatorI.h
@@ -20,27 +20,31 @@
namespace Ice
{
-class CommunicatorI : public Communicator
+class CommunicatorI;
+ICE_DEFINE_PTR(CommunicatorIPtr, CommunicatorI);
+
+class CommunicatorI : public EnableSharedFromThis<CommunicatorI>,
+ public Communicator
{
public:
-
+
virtual void destroy();
virtual void shutdown();
virtual void waitForShutdown();
virtual bool isShutdown() const;
- virtual ObjectPrx stringToProxy(const std::string&) const;
- virtual std::string proxyToString(const ObjectPrx&) const;
+ virtual ObjectPrxPtr stringToProxy(const std::string&) const;
+ virtual std::string proxyToString(const ObjectPrxPtr&) const;
- virtual ObjectPrx propertyToProxy(const std::string&) const;
- virtual PropertyDict proxyToProperty(const ObjectPrx&, const std::string&) const;
+ virtual ObjectPrxPtr propertyToProxy(const std::string&) const;
+ virtual PropertyDict proxyToProperty(const ObjectPrxPtr&, const std::string&) const;
virtual Identity stringToIdentity(const std::string&) const;
virtual std::string identityToString(const Identity&) const;
virtual ObjectAdapterPtr createObjectAdapter(const std::string&);
virtual ObjectAdapterPtr createObjectAdapterWithEndpoints(const std::string&, const std::string&);
- virtual ObjectAdapterPtr createObjectAdapterWithRouter(const std::string&, const RouterPrx&);
+ virtual ObjectAdapterPtr createObjectAdapterWithRouter(const std::string&, const RouterPrxPtr&);
virtual void addObjectFactory(const ObjectFactoryPtr&, const std::string&);
virtual ObjectFactoryPtr findObjectFactory(const std::string&) const;
@@ -51,38 +55,47 @@ public:
virtual LoggerPtr getLogger() const;
virtual Ice::Instrumentation::CommunicatorObserverPtr getObserver() const;
- virtual RouterPrx getDefaultRouter() const;
- virtual void setDefaultRouter(const RouterPrx&);
+ virtual RouterPrxPtr getDefaultRouter() const;
+ virtual void setDefaultRouter(const RouterPrxPtr&);
- virtual LocatorPrx getDefaultLocator() const;
- virtual void setDefaultLocator(const LocatorPrx&);
+ virtual LocatorPrxPtr getDefaultLocator() const;
+ virtual void setDefaultLocator(const LocatorPrxPtr&);
virtual PluginManagerPtr getPluginManager() const;
+ virtual ValueFactoryManagerPtr getValueFactoryManager() const;
+
virtual void flushBatchRequests();
+#ifdef ICE_CPP11_MAPPING
+ virtual ::std::function<void ()>
+ flushBatchRequests_async(::std::function<void (::std::exception_ptr)>,
+ ::std::function<void (bool)> = nullptr);
+#else
virtual AsyncResultPtr begin_flushBatchRequests();
virtual AsyncResultPtr begin_flushBatchRequests(const CallbackPtr&, const LocalObjectPtr& = 0);
virtual AsyncResultPtr begin_flushBatchRequests(const Callback_Communicator_flushBatchRequestsPtr&,
const LocalObjectPtr& = 0);
- virtual AsyncResultPtr begin_flushBatchRequests(
- const IceInternal::Function<void (const Exception&)>&,
- const IceInternal::Function<void (bool)>& = IceInternal::Function<void (bool)>());
-
virtual void end_flushBatchRequests(const AsyncResultPtr&);
+#endif
- virtual ObjectPrx createAdmin(const ObjectAdapterPtr&, const Identity&);
- virtual ObjectPrx getAdmin() const;
+ virtual ObjectPrxPtr createAdmin(const ObjectAdapterPtr&, const Identity&);
+ virtual ObjectPrxPtr getAdmin() const;
virtual void addAdminFacet(const ObjectPtr&, const std::string&);
virtual ObjectPtr removeAdminFacet(const std::string&);
virtual ObjectPtr findAdminFacet(const std::string&);
virtual FacetMap findAllAdminFacets();
+ virtual ~CommunicatorI();
+
private:
- CommunicatorI(const InitializationData&);
- virtual ~CommunicatorI();
+#ifndef ICE_CPP11_MAPPING
+ CommunicatorI() {}
+#endif
+
+ static CommunicatorIPtr create(const InitializationData&);
//
// Certain initialization tasks need to be completed after the
@@ -96,7 +109,9 @@ private:
friend ICE_API ::IceInternal::InstancePtr IceInternal::getInstance(const ::Ice::CommunicatorPtr&);
friend ICE_API ::IceUtil::TimerPtr IceInternal::getInstanceTimer(const ::Ice::CommunicatorPtr&);
+#ifndef ICE_CPP11_MAPPING
AsyncResultPtr __begin_flushBatchRequests(const IceInternal::CallbackBasePtr&, const LocalObjectPtr&);
+#endif
const ::IceInternal::InstancePtr _instance;