summaryrefslogtreecommitdiff
path: root/cpp/src/IceStorm/OnewayBatchSubscriber.cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2003-08-29 06:51:58 +0000
committerMichi Henning <michi@zeroc.com>2003-08-29 06:51:58 +0000
commit14e46bc24e79df49bd603c08d293c17245b9ca93 (patch)
treec7fc6f422c2a0706ed5e3926a091aa715ee41021 /cpp/src/IceStorm/OnewayBatchSubscriber.cpp
parentconnection closure timeout (diff)
downloadice-14e46bc24e79df49bd603c08d293c17245b9ca93.tar.bz2
ice-14e46bc24e79df49bd603c08d293c17245b9ca93.tar.xz
ice-14e46bc24e79df49bd603c08d293c17245b9ca93.zip
Removed ice_flush() from proxy base class and implemented
Communicator::flushBatchRequests().
Diffstat (limited to 'cpp/src/IceStorm/OnewayBatchSubscriber.cpp')
-rw-r--r--cpp/src/IceStorm/OnewayBatchSubscriber.cpp31
1 files changed, 7 insertions, 24 deletions
diff --git a/cpp/src/IceStorm/OnewayBatchSubscriber.cpp b/cpp/src/IceStorm/OnewayBatchSubscriber.cpp
index d54d223f1f9..e8869cd8e13 100644
--- a/cpp/src/IceStorm/OnewayBatchSubscriber.cpp
+++ b/cpp/src/IceStorm/OnewayBatchSubscriber.cpp
@@ -20,9 +20,13 @@
using namespace IceStorm;
using namespace std;
-OnewayBatchSubscriber::OnewayBatchSubscriber(const SubscriberFactoryPtr& factory, const TraceLevelsPtr& traceLevels,
- const FlusherPtr& flusher, const QueuedProxyPtr& obj) :
+OnewayBatchSubscriber::OnewayBatchSubscriber(const SubscriberFactoryPtr& factory,
+ const Ice::CommunicatorPtr& communicator,
+ const TraceLevelsPtr& traceLevels,
+ const FlusherPtr& flusher,
+ const QueuedProxyPtr& obj) :
OnewaySubscriber(factory, traceLevels, obj),
+ _communicator(communicator),
_flusher(flusher)
{
_flusher->add(this);
@@ -79,28 +83,7 @@ OnewayBatchSubscriber::inactive() const
void
OnewayBatchSubscriber::flush()
{
- try
- {
- _obj->proxy()->ice_flush();
- }
- catch(const Ice::LocalException& e)
- {
- IceUtil::Mutex::Lock sync(_stateMutex);
- //
- // It's possible that the subscriber was unsubscribed, or
- // marked invalid by another thread. Don't display a
- // diagnostic in this case.
- //
- if(_state == StateActive)
- {
- if(_traceLevels->subscriber > 0)
- {
- Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberCat);
- out << id() << ": flush failed: " << e;
- }
- _state = StateError;
- }
- }
+ _communicator->flushBatchRequests();
}
bool