diff options
Diffstat (limited to 'cpp/src/IceStorm/LinkSubscriber.cpp')
-rw-r--r-- | cpp/src/IceStorm/LinkSubscriber.cpp | 33 |
1 files changed, 4 insertions, 29 deletions
diff --git a/cpp/src/IceStorm/LinkSubscriber.cpp b/cpp/src/IceStorm/LinkSubscriber.cpp index e753ad38e2b..8eb19e3476f 100644 --- a/cpp/src/IceStorm/LinkSubscriber.cpp +++ b/cpp/src/IceStorm/LinkSubscriber.cpp @@ -20,10 +20,10 @@ using namespace IceStorm; using namespace std; -LinkSubscriber::LinkSubscriber(const SubscriberFactoryPtr& factory, const TraceLevelsPtr& traceLevels, - const QueuedProxyPtr& obj, Ice::Int cost) : +LinkSubscriber::LinkSubscriber(const SubscriberFactoryPtr& factory, const Ice::CommunicatorPtr& communicator, + const TraceLevelsPtr& traceLevels, const QueuedProxyPtr& obj, Ice::Int cost) : Subscriber(traceLevels, obj->proxy()->ice_getIdentity()), - _factory(factory), _obj(obj), _cost(cost) + _factory(factory), _communicator(communicator), _obj(obj), _cost(cost) { _factory->incProxyUsageCount(_obj); } @@ -115,32 +115,7 @@ LinkSubscriber::publish(const EventPtr& event) void LinkSubscriber::flush() { - try - { - _obj->proxy()->ice_flush(); - } - catch(const Ice::ObjectNotExistException& e) - { - // - // ObjectNotExist causes the link to be removed. - // - IceUtil::Mutex::Lock sync(_stateMutex); - _state = StateError; - - if(_traceLevels->subscriber > 0) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat); - out << id() << ": link topic flush failed: " << e; - } - } - catch(const Ice::LocalException& e) - { - if(_traceLevels->subscriber > 0) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat); - out << id() << ": link topic flush failed: " << e; - } - } + _communicator->flushBatchRequests(); } bool |