diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-11-16 23:58:12 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-11-16 23:58:12 +0000 |
commit | 155e815c8130665480773f352799743dd3dbcaa5 (patch) | |
tree | 5cea319f74ee5ffb0273c7c724d74e201be87b7c /TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp | |
parent | f917f69f0a4cfaf50cafee1674136c59c48eba11 (diff) | |
download | ATCD-155e815c8130665480773f352799743dd3dbcaa5.tar.gz |
ChangeLogTag:Mon Nov 16 17:54:13 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp b/TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp index 36e15218e97..c7f00203376 100644 --- a/TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp @@ -519,6 +519,9 @@ ACE_EventChannel::~ACE_EventChannel (void) ACE_DEBUG ((LM_DEBUG, "EC (%t) ACE_EventChannel deleting all modules.\n")); + // @@ This should go away, it is too late to raise a CORBA + // exception, at this point we should only be cleaning up memory, + // not sending messages. TAO_TRY { this->destroy (TAO_TRY_ENV); @@ -1368,7 +1371,9 @@ ACE_ES_Consumer_Module::fill_qos (RtecEventChannelAdmin::ConsumerQOS& c_qos) // that we turn conjunctions into disjunctions because // correlations could be satisfied by events coming from // several remote ECs. - if (0 <= type && type <= ACE_ES_EVENT_UNDEFINED) + // Notice that <0> is a *not* skipped, otherwise source only + // filtering does not work. + if (1 <= type && type <= ACE_ES_EVENT_UNDEFINED) continue; // If the dependency is already there we don't add it. @@ -2701,8 +2706,6 @@ ACE_ES_Subscription_Module::subscribe_source_type (ACE_ES_Consumer_Rep *consumer // specified type. Add the <consumer> to that set. Supplier_Iterator iter (all_suppliers_); - int success = -1; - for (ACE_Push_Supplier_Proxy **proxy = 0; iter.next (proxy) != 0; iter.advance ()) @@ -2750,8 +2753,6 @@ ACE_ES_Subscription_Module::subscribe_source_type (ACE_ES_Consumer_Rep *consumer } /* FALLTHROUGH */ case 1: - success = 0; - // Already there. break; } @@ -2759,15 +2760,9 @@ ACE_ES_Subscription_Module::subscribe_source_type (ACE_ES_Consumer_Rep *consumer } } - // If we failed to find a source, insert this consumer in the - // global source subscriber list. - // @@ TODO This seems to require that the supplier IDs be unique. - if (success == -1) - return ACE_ES_Subscription_Info::insert_or_allocate (source_subscribers_, - consumer, - source); - - return success; + return ACE_ES_Subscription_Info::insert_or_allocate (source_subscribers_, + consumer, + source); } // <consumer> contains information for one type of subscription. @@ -2819,7 +2814,7 @@ ACE_ES_Subscription_Module::unsubscribe (ACE_ES_Consumer_Rep *consumer) RtecEventComm::Event &event = consumer->dependency ()->event; - if (event.header.type != ACE_ES_EVENT_ANY) + if (event.header.source == 0) { // Remove the consumer from the global type-based subscription list. ACE_ES_Subscription_Info::remove (type_subscribers_, |