summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2002-01-17 19:40:49 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2002-01-17 19:40:49 +0000
commitd603ae209c6831affa436935cfa0ba861e3acbbb (patch)
treee0dcd7f56c71bd720d1c06a4273f0af4d86acd04 /TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp
parentce6ba8ebfc0257a52d5cd3cebde9cee0a7266893 (diff)
downloadATCD-d603ae209c6831affa436935cfa0ba861e3acbbb.tar.gz
ChangeLogTag: Thu Jan 17 13:40:09 2002 Chad Elliott <elliott_c@ociweb.com>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp
index ff92e190c84..721f1e02010 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Notify_EventChannel_i.cpp
@@ -29,7 +29,7 @@ TAO_Notify_EventChannel_i::TAO_Notify_EventChannel_i (TAO_Notify_EventChannelFac
default_id_ (0),
event_listener_list_ (0)
{
- channel_factory_->_add_ref ();
+ this->channel_factory_->_add_ref ();
}
// Implementation skeleton destructor
@@ -44,7 +44,7 @@ TAO_Notify_EventChannel_i::~TAO_Notify_EventChannel_i (void)
delete this->event_listener_list_;
this->channel_factory_->event_channel_destroyed (this->channel_id_);
- channel_factory_->_remove_ref ();
+ this->channel_factory_->_remove_ref ();
delete event_manager_objects_factory_;
}
@@ -65,14 +65,16 @@ TAO_Notify_EventChannel_i::init (CosNotifyChannelAdmin::ChannelID channel_id, co
this->event_manager_objects_factory_->create_event_manager (this TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
- this->event_manager_->init (TAO_ENV_SINGLE_ARG_PARAMETER);
+ // Set these before initializing the event manger.
+ this->set_qos (initial_qos TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
- // try to set initial qos params
- this->set_qos (initial_qos TAO_ENV_ARG_PARAMETER);
+ this->event_manager_->init (TAO_ENV_SINGLE_ARG_PARAMETER);
ACE_CHECK;
// try to set initial admin params
+ // This must be set after initializing the event manager
+ // since it is the one that owns the admin properties.
this->set_admin (initial_admin TAO_ENV_ARG_PARAMETER);
ACE_CHECK;
@@ -184,6 +186,12 @@ TAO_Notify_EventChannel_i::destroy (TAO_ENV_SINGLE_ARG_DECL)
TAO_ENV_ARG_PARAMETER);
}
+const TAO_Notify_QoSAdmin_i&
+TAO_Notify_EventChannel_i::qos_admin (void) const
+{
+ return this->qos_admin_;
+}
+
CosNotifyChannelAdmin::EventChannelFactory_ptr
TAO_Notify_EventChannel_i::MyFactory (TAO_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException))
@@ -388,6 +396,9 @@ TAO_Notify_EventChannel_i::set_admin (const CosNotification::AdminProperties & a
))
{
this->event_manager_->admin_properties ()->set_admin (admin TAO_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ this->event_manager_->update_task_admins ();
}
CosEventChannelAdmin::ConsumerAdmin_ptr