diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/Instance.cpp | 9 | ||||
-rw-r--r-- | cpp/src/Ice/Instance.h | 2 | ||||
-rw-r--r-- | cpp/src/Ice/Reference.cpp | 30 | ||||
-rw-r--r-- | cpp/src/Ice/Reference.h | 14 | ||||
-rw-r--r-- | cpp/src/Ice/ReferenceFactory.cpp | 1 | ||||
-rw-r--r-- | cpp/src/Ice/ReferenceFactory.h | 3 |
6 files changed, 28 insertions, 31 deletions
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp index 38837e462cf..3c6d9c3a42d 100644 --- a/cpp/src/Ice/Instance.cpp +++ b/cpp/src/Ice/Instance.cpp @@ -75,12 +75,6 @@ IceInternal::Instance::destroyed() const return _state == StateDestroyed; } -CommunicatorPtr -IceInternal::Instance::communicator() const -{ - return _communicator; -} - PropertiesPtr IceInternal::Instance::properties() const { @@ -421,7 +415,6 @@ IceInternal::Instance::getDefaultContext() const IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const PropertiesPtr& properties) : - _communicator(communicator.get()), _state(StateActive), _properties(properties), _messageSizeMax(0), @@ -628,7 +621,7 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Prope _locatorManager = new LocatorManager; - _referenceFactory = new ReferenceFactory(this); + _referenceFactory = new ReferenceFactory(this, communicator); _proxyFactory = new ProxyFactory(this); diff --git a/cpp/src/Ice/Instance.h b/cpp/src/Ice/Instance.h index d54d838e1d3..6f6dedef17a 100644 --- a/cpp/src/Ice/Instance.h +++ b/cpp/src/Ice/Instance.h @@ -49,7 +49,6 @@ class Instance : public IceUtil::Shared, public IceUtil::RecMutex public: bool destroyed() const; - Ice::CommunicatorPtr communicator() const; Ice::PropertiesPtr properties() const; Ice::LoggerPtr logger() const; void logger(const Ice::LoggerPtr&); @@ -87,7 +86,6 @@ private: bool destroy(); friend class Ice::CommunicatorI; - Ice::Communicator* _communicator; // Not a Ptr, to avoid having Instance and CommunicatorI point at each other. enum State { StateActive, diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp index 3c714335291..383befc7907 100644 --- a/cpp/src/Ice/Reference.cpp +++ b/cpp/src/Ice/Reference.cpp @@ -54,7 +54,7 @@ IceInternal::Reference::defaultContext() const CommunicatorPtr IceInternal::Reference::getCommunicator() const { - return _instance->communicator(); + return _communicator; } ReferencePtr @@ -400,9 +400,10 @@ public: } }; -IceInternal::Reference::Reference(const InstancePtr& inst, const Identity& ident, const Context& ctx, - const string& fs, Mode md) +IceInternal::Reference::Reference(const InstancePtr& inst, const CommunicatorPtr& com, const Identity& ident, + const Context& ctx, const string& fs, Mode md) : _instance(inst), + _communicator(com), _mode(md), _identity(ident), _hasContext(!ctx.empty()), @@ -414,6 +415,7 @@ IceInternal::Reference::Reference(const InstancePtr& inst, const Identity& ident IceInternal::Reference::Reference(const Reference& r) : _instance(r._instance), + _communicator(r._communicator), _mode(r._mode), _identity(r._identity), _hasContext(r._hasContext), @@ -426,10 +428,10 @@ IceInternal::Reference::Reference(const Reference& r) void IceInternal::incRef(IceInternal::FixedReference* p) { p->__incRef(); } void IceInternal::decRef(IceInternal::FixedReference* p) { p->__decRef(); } -IceInternal::FixedReference::FixedReference(const InstancePtr& inst, const Identity& ident, +IceInternal::FixedReference::FixedReference(const InstancePtr& inst, const CommunicatorPtr& com, const Identity& ident, const Context& ctx, const string& fs, Mode md, const vector<ConnectionIPtr>& fixedConns) - : Reference(inst, ident, ctx, fs, md), + : Reference(inst, com, ident, ctx, fs, md), _fixedConnections(fixedConns) { } @@ -727,10 +729,10 @@ IceInternal::RoutableReference::operator<(const Reference& r) const return false; } -IceInternal::RoutableReference::RoutableReference(const InstancePtr& inst, const Identity& ident, - const Context& ctx, const string& fs, Mode md, +IceInternal::RoutableReference::RoutableReference(const InstancePtr& inst, const CommunicatorPtr& com, + const Identity& ident, const Context& ctx, const string& fs, Mode md, bool sec, const RouterInfoPtr& rtrInfo, bool collocationOpt) - : Reference(inst, ident, ctx, fs, md), + : Reference(inst, com, ident, ctx, fs, md), _secure(sec), _routerInfo(rtrInfo), _collocationOptimization(collocationOpt) @@ -748,11 +750,11 @@ IceInternal::RoutableReference::RoutableReference(const RoutableReference& r) void IceInternal::incRef(IceInternal::DirectReference* p) { p->__incRef(); } void IceInternal::decRef(IceInternal::DirectReference* p) { p->__decRef(); } -IceInternal::DirectReference::DirectReference(const InstancePtr& inst, const Identity& ident, - const Context& ctx, const string& fs, Mode md, +IceInternal::DirectReference::DirectReference(const InstancePtr& inst, const CommunicatorPtr& com, + const Identity& ident, const Context& ctx, const string& fs, Mode md, bool sec, const vector<EndpointPtr>& endpts, const RouterInfoPtr& rtrInfo, bool collocationOpt) - : RoutableReference(inst, ident, ctx, fs, md, sec, rtrInfo, collocationOpt), + : RoutableReference(inst, com, ident, ctx, fs, md, sec, rtrInfo, collocationOpt), _endpoints(endpts) { } @@ -969,11 +971,11 @@ IceInternal::DirectReference::DirectReference(const DirectReference& r) void IceInternal::incRef(IceInternal::IndirectReference* p) { p->__incRef(); } void IceInternal::decRef(IceInternal::IndirectReference* p) { p->__decRef(); } -IceInternal::IndirectReference::IndirectReference(const InstancePtr& inst, const Identity& ident, - const Context& ctx, const string& fs, Mode md, +IceInternal::IndirectReference::IndirectReference(const InstancePtr& inst, const CommunicatorPtr& com, + const Identity& ident, const Context& ctx, const string& fs, Mode md, bool sec, const string& adptid, const RouterInfoPtr& rtrInfo, const LocatorInfoPtr& locInfo, bool collocationOpt) - : RoutableReference(inst, ident, ctx, fs, md, sec, rtrInfo, collocationOpt), + : RoutableReference(inst, com, ident, ctx, fs, md, sec, rtrInfo, collocationOpt), _adapterId(adptid), _locatorInfo(locInfo) { diff --git a/cpp/src/Ice/Reference.h b/cpp/src/Ice/Reference.h index 0ae8838dc2a..37441044bd4 100644 --- a/cpp/src/Ice/Reference.h +++ b/cpp/src/Ice/Reference.h @@ -104,12 +104,14 @@ public: protected: - Reference(const InstancePtr&, const Ice::Identity&, const Ice::Context&, const std::string&, Mode); + Reference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const Ice::Context&, + const std::string&, Mode); Reference(const Reference&); private: - InstancePtr _instance; + const InstancePtr _instance; + const Ice::CommunicatorPtr _communicator; Mode _mode; Ice::Identity _identity; @@ -126,7 +128,7 @@ class FixedReference : public Reference { public: - FixedReference(const InstancePtr&, const Ice::Identity&, const Ice::Context&, const std::string&, Mode, + FixedReference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const Ice::Context&, const std::string&, Mode, const std::vector<Ice::ConnectionIPtr>&); const std::vector<Ice::ConnectionIPtr>& getFixedConnections() const; @@ -188,7 +190,7 @@ public: protected: - RoutableReference(const InstancePtr&, const Ice::Identity&, const Ice::Context&, const std::string&, + RoutableReference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const Ice::Context&, const std::string&, Mode, bool, const RouterInfoPtr&, bool); RoutableReference(const RoutableReference&); @@ -204,7 +206,7 @@ class DirectReference : public RoutableReference { public: - DirectReference(const InstancePtr&, const Ice::Identity&, const Ice::Context&, const std::string&, Mode, bool, + DirectReference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const Ice::Context&, const std::string&, Mode, bool, const std::vector<EndpointPtr>&, const RouterInfoPtr&, bool); virtual std::vector<EndpointPtr> getEndpoints() const; @@ -240,7 +242,7 @@ class IndirectReference : public RoutableReference { public: - IndirectReference(const InstancePtr&, const Ice::Identity&, const Ice::Context&, const std::string&, + IndirectReference(const InstancePtr&, const Ice::CommunicatorPtr&, const Ice::Identity&, const Ice::Context&, const std::string&, Mode, bool, const std::string&, const RouterInfoPtr&, const LocatorInfoPtr&, bool); const std::string& getAdapterId() const { return _adapterId; } diff --git a/cpp/src/Ice/ReferenceFactory.cpp b/cpp/src/Ice/ReferenceFactory.cpp index cbfd96c3d61..8af9ceab456 100644 --- a/cpp/src/Ice/ReferenceFactory.cpp +++ b/cpp/src/Ice/ReferenceFactory.cpp @@ -621,6 +621,7 @@ IceInternal::ReferenceFactory::destroy() } _instance = 0; + _communicator = 0; _defaultRouter = 0; _defaultLocator = 0; } diff --git a/cpp/src/Ice/ReferenceFactory.h b/cpp/src/Ice/ReferenceFactory.h index 5a444d2449e..9c8aed653c7 100644 --- a/cpp/src/Ice/ReferenceFactory.h +++ b/cpp/src/Ice/ReferenceFactory.h @@ -64,11 +64,12 @@ public: private: - ReferenceFactory(const InstancePtr&); + ReferenceFactory(const InstancePtr&, const ::Ice::CommunicatorPtr&); void destroy(); friend class Instance; InstancePtr _instance; + ::Ice::CommunicatorPtr _communicator; ::Ice::RouterPrx _defaultRouter; ::Ice::LocatorPrx _defaultLocator; }; |