diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2003-07-16 13:07:25 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2003-07-16 13:07:25 +0000 |
commit | 9e19eedf923f0b467659a1a22af30f0d46124f84 (patch) | |
tree | 91a2a5e57ed0617d7a8c45242bd1d1f8c8838855 /TAO | |
parent | 9eff852e2be74f0e71708eac62d06c2ef9181ce4 (diff) | |
download | ATCD-9e19eedf923f0b467659a1a22af30f0d46124f84.tar.gz |
ChangeLogTag: Wed Jul 16 13:05:12 UTC 2003 Johnny Willemsen <jwillemsen@remedy.nl>
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLog | 10 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp | 26 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h | 20 |
3 files changed, 41 insertions, 15 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 3aea4f97c03..36bb68fd6be 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,13 @@ +Wed Jul 16 13:06:03 UTC 2003 Johnny Willemsen <jwillemsen@remedy.nl> + + * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp: + When updating the observers, when one fails, then just go on + further with the other observers instead of just stopping + with updating them all. + + * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h: + Small doxygen improvements + Wed Jul 16 12:15:34 UTC 2003 Don Hinton <dhinton@dresystems.com> * TAO_IDL/ast/ast_argument.cpp: diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp index a32233d1460..006c942f83c 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp @@ -207,8 +207,17 @@ TAO_EC_Basic_ObserverStrategy::supplier_qos_update ( for (int i = 0; i != size; ++i) { - copy[i]->update_supplier (s_qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + ACE_TRY + { + copy[i]->update_supplier (s_qos ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + // Ignore exceptions, we must isolate other observers from + // failures on this one. + } + ACE_ENDTRY; } } @@ -249,8 +258,17 @@ TAO_EC_Basic_ObserverStrategy::consumer_qos_update ( for (int i = 0; i != size; ++i) { - copy[i]->update_consumer (c_qos ACE_ENV_ARG_PARAMETER); - ACE_CHECK; + ACE_TRY + { + copy[i]->update_consumer (c_qos ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + } + ACE_CATCHANY + { + // Ignore exceptions, we must isolate other observers from + // failures on this one. + } + ACE_ENDTRY; } } diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h index 1ca3f89b15d..6297dac192a 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h +++ b/TAO/orbsvcs/orbsvcs/Event/EC_ObserverStrategy.h @@ -35,16 +35,14 @@ class TAO_EC_ProxyPushSupplier; /** * @class TAO_EC_ObserverStrategy * - * @brief The strategy to handle observers for the Event Channel - * subscriptions and publication. + * @brief The strategy to handle observers for the Event Channel subscriptions + * and publication. * - * The Event Channel supports Observers for the set of - * subscriptions and publications. - * This is used to implement federations of event channels, - * either through UDP (multicast and unicast) and/or regular CORBA - * calls. - * This behavior of the EC is strategized to avoid overhead when - * no gateways are needed. + * The Event Channel supports Observers for the set of subscriptions and + * publications. This is used to implement federations of event channels, + * either through UDP (multicast and unicast) and/or regular CORBA calls. + * This behavior of the EC is strategized to avoid overhead when no gateways + * are needed. */ class TAO_RTEvent_Export TAO_EC_ObserverStrategy { @@ -77,7 +75,7 @@ public: virtual void disconnected (TAO_EC_ProxyPushConsumer* ACE_ENV_ARG_DECL_NOT_USED) = 0; - /// Used by the EC to inform the ObserverStrategy that a Consumer has + /// Used by the EC to inform the ObserverStrategy that a Supplier has /// connected or disconnected from it. virtual void connected (TAO_EC_ProxyPushSupplier* ACE_ENV_ARG_DECL_NOT_USED) = 0; @@ -194,7 +192,7 @@ public: { // The ACE_INLINE macros here are to keep g++ 2.7.X happy, // otherwise it thinks they are used as inline functions before - // beign used as such.... Apparently in the template code for the + // being used as such.... Apparently in the template code for the // Hash_Map_Manager. ACE_INLINE Observer_Entry (void); ACE_INLINE Observer_Entry (RtecEventChannelAdmin::Observer_Handle h, |