diff options
author | Benoit Foucher <benoit@zeroc.com> | 2019-07-10 11:04:05 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2019-07-10 11:04:05 +0200 |
commit | 1542e28b1192a8b868be3425a5c7f8d16fef5f17 (patch) | |
tree | 5b2aaa206d5c6abf9eb9a4bacf3ec9fdf667d75b /cpp/src/IceStorm/Subscriber.cpp | |
parent | Reworked 3.7.3 entries (diff) | |
download | ice-1542e28b1192a8b868be3425a5c7f8d16fef5f17.tar.bz2 ice-1542e28b1192a8b868be3425a5c7f8d16fef5f17.tar.xz ice-1542e28b1192a8b868be3425a5c7f8d16fef5f17.zip |
Allow oneway/batch proxies to use IceStorm retryCount, fixes #164
Diffstat (limited to 'cpp/src/IceStorm/Subscriber.cpp')
-rw-r--r-- | cpp/src/IceStorm/Subscriber.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/cpp/src/IceStorm/Subscriber.cpp b/cpp/src/IceStorm/Subscriber.cpp index 0fb46848c3d..9df599eec3c 100644 --- a/cpp/src/IceStorm/Subscriber.cpp +++ b/cpp/src/IceStorm/Subscriber.cpp @@ -196,12 +196,16 @@ SubscriberBatch::SubscriberBatch( _obj(obj), _interval(instance->flushInterval()) { - assert(retryCount == 0); } void SubscriberBatch::flush() { + if(_state != SubscriberStateOnline || _events.empty()) + { + return; + } + if(_outstanding == 0) { ++_outstanding; @@ -309,7 +313,6 @@ SubscriberOneway::SubscriberOneway( Subscriber(instance, rec, proxy, retryCount, 5), _obj(obj) { - assert(retryCount == 0); } void @@ -605,18 +608,10 @@ Subscriber::create( } else if(newObj->ice_isOneway() || newObj->ice_isDatagram()) { - if(retryCount > 0) - { - throw BadQoS("non-zero retryCount QoS requires a twoway proxy"); - } subscriber = new SubscriberOneway(instance, rec, proxy, retryCount, newObj); } else if(newObj->ice_isBatchOneway() || newObj->ice_isBatchDatagram()) { - if(retryCount > 0) - { - throw BadQoS("non-zero retryCount QoS requires a twoway proxy"); - } subscriber = new SubscriberBatch(instance, rec, proxy, retryCount, newObj); } else //if(newObj->ice_isTwoway()) |