diff options
Diffstat (limited to 'cppe/src')
-rw-r--r-- | cppe/src/IceE/Instance.cpp | 11 | ||||
-rw-r--r-- | cppe/src/IceE/Instance.h | 2 | ||||
-rw-r--r-- | cppe/src/IceE/Proxy.cpp | 18 | ||||
-rw-r--r-- | cppe/src/IceE/Reference.cpp | 6 | ||||
-rw-r--r-- | cppe/src/IceE/Reference.h | 2 |
5 files changed, 34 insertions, 5 deletions
diff --git a/cppe/src/IceE/Instance.cpp b/cppe/src/IceE/Instance.cpp index 4c53df751a2..3b70ed648a6 100644 --- a/cppe/src/IceE/Instance.cpp +++ b/cppe/src/IceE/Instance.cpp @@ -33,8 +33,8 @@ #include <stdio.h> -#ifdef _WIN32
-# include <winsock2.h>
+#ifdef _WIN32 +# include <winsock2.h> #else # include <signal.h> # include <pwd.h> @@ -60,6 +60,12 @@ extern bool ICEE_API nullHandleAbort; void IceInternal::incRef(Instance* p) { p->__incRef(); } void IceInternal::decRef(Instance* p) { p->__decRef(); } +CommunicatorPtr +IceInternal::Instance::communicator() const +{ + return _communicator; +} + PropertiesPtr IceInternal::Instance::properties() const { @@ -266,6 +272,7 @@ IceInternal::Instance::getDefaultContext() const } IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const PropertiesPtr& properties) : + _communicator(communicator.get()), _destroyed(false), _properties(properties), _messageSizeMax(0), diff --git a/cppe/src/IceE/Instance.h b/cppe/src/IceE/Instance.h index 3c0530479e2..ed61cc4b084 100644 --- a/cppe/src/IceE/Instance.h +++ b/cppe/src/IceE/Instance.h @@ -42,6 +42,7 @@ class Instance : public IceUtil::Shared, public IceUtil::RecMutex { public: + Ice::CommunicatorPtr communicator() const; Ice::PropertiesPtr properties() const; Ice::LoggerPtr logger() const; void logger(const Ice::LoggerPtr&); @@ -78,6 +79,7 @@ private: void destroy(); friend class Ice::Communicator; + Ice::Communicator* _communicator; // Not a Ptr, to avoid having Instance and CommunicatorI point at each other. bool _destroyed; const Ice::PropertiesPtr _properties; // Immutable, not reset by destroy(). Ice::LoggerPtr _logger; // Not reset by destroy(). diff --git a/cppe/src/IceE/Proxy.cpp b/cppe/src/IceE/Proxy.cpp index c2cf22025d3..974c9ac31a9 100644 --- a/cppe/src/IceE/Proxy.cpp +++ b/cppe/src/IceE/Proxy.cpp @@ -14,9 +14,9 @@ #include <IceE/Instance.h> #include <IceE/BasicStream.h> #include <IceE/LocalExceptions.h> -#ifdef ICEE_HAS_ROUTER
-# include <IceE/RouterInfo.h>
-#endif
+#ifdef ICEE_HAS_ROUTER +# include <IceE/RouterInfo.h> +#endif using namespace std; using namespace Ice; @@ -146,6 +146,18 @@ IceProxy::Ice::Object::ice_hash() const return _reference->hash(); } +CommunicatorPtr +IceProxy::Ice::Object::ice_communicator() const +{ + return _reference->getCommunicator(); +} + +string +IceProxy::Ice::Object::ice_toString() const +{ + return _reference->toString(); +} + bool IceProxy::Ice::Object::ice_isA(const string& __id) { diff --git a/cppe/src/IceE/Reference.cpp b/cppe/src/IceE/Reference.cpp index 307b5dca782..9e8f75e919c 100644 --- a/cppe/src/IceE/Reference.cpp +++ b/cppe/src/IceE/Reference.cpp @@ -55,6 +55,12 @@ IceInternal::Reference::defaultContext() const return r; } +CommunicatorPtr +IceInternal::Reference::getCommunicator() const +{ + return _instance->communicator(); +} + ReferencePtr IceInternal::Reference::changeContext(const Context& newContext) const { diff --git a/cppe/src/IceE/Reference.h b/cppe/src/IceE/Reference.h index 7308f6ccb7b..9de7ea628e2 100644 --- a/cppe/src/IceE/Reference.h +++ b/cppe/src/IceE/Reference.h @@ -53,6 +53,8 @@ public: ReferencePtr defaultContext() const; + Ice::CommunicatorPtr getCommunicator() const; + virtual std::vector<EndpointPtr> getEndpoints() const = 0; // |