#include <Builder.h>
Inheritance diagram for TAO_Notify_Builder:
Public Member Functions | |
TAO_Notify_Builder (void) | |
virtual | ~TAO_Notify_Builder () |
virtual CosNotifyChannelAdmin::EventChannelFactory_ptr | build_event_channel_factory (PortableServer::POA_ptr poa, const char *factory_name=0) |
Build EventChannel Factory. | |
virtual CosNotifyFilter::FilterFactory_ptr | build_filter_factory (PortableServer::POA_ptr poa) |
Build the Filter Factory. | |
virtual CosNotifyChannelAdmin::EventChannel_ptr | build_event_channel (TAO_Notify_EventChannelFactory *ecf, const CosNotification::QoSProperties &initial_qos, const CosNotification::AdminProperties &initial_admin, CosNotifyChannelAdmin::ChannelID_out id, const char *ec_name=0) |
Build EventChannel. | |
virtual TAO_Notify_EventChannel * | build_event_channel (TAO_Notify_EventChannelFactory *ecf, const CosNotifyChannelAdmin::ChannelID id, const char *ec_name=0) |
virtual CosNotifyChannelAdmin::ConsumerAdmin_ptr | build_consumer_admin (TAO_Notify_EventChannel *ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id) |
Build ConsumerAdmin. | |
virtual TAO_Notify_ConsumerAdmin * | build_consumer_admin (TAO_Notify_EventChannel *ec, const CosNotifyChannelAdmin::AdminID id) |
virtual CosNotifyChannelAdmin::SupplierAdmin_ptr | build_supplier_admin (TAO_Notify_EventChannel *ec, CosNotifyChannelAdmin::InterFilterGroupOperator op, CosNotifyChannelAdmin::AdminID_out id) |
Build SupplierAdmin. | |
virtual TAO_Notify_SupplierAdmin * | build_supplier_admin (TAO_Notify_EventChannel *ec, const CosNotifyChannelAdmin::AdminID id) |
virtual CosNotifyChannelAdmin::ProxyConsumer_ptr | build_proxy (TAO_Notify_SupplierAdmin *sa, CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id, const CosNotification::QoSProperties &initial_qos) |
Build ProxyConsumer. | |
virtual TAO_Notify_ProxyConsumer * | build_proxy (TAO_Notify_SupplierAdmin *sa, CosNotifyChannelAdmin::ClientType ctype, const CosNotifyChannelAdmin::ProxyID proxy_id) |
Reload ProxyConsumer. | |
virtual CosNotifyChannelAdmin::ProxySupplier_ptr | build_proxy (TAO_Notify_ConsumerAdmin *ca, CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id, const CosNotification::QoSProperties &initial_qos) |
Build ProxySupplier. | |
virtual TAO_Notify_ProxySupplier * | build_proxy (TAO_Notify_ConsumerAdmin *ca, CosNotifyChannelAdmin::ClientType ctype, const CosNotifyChannelAdmin::ProxyID proxy_id) |
Reload ProxySupplier. | |
virtual CosEventChannelAdmin::ProxyPushSupplier_ptr | build_proxy (TAO_Notify_ConsumerAdmin *ca) |
Build CosEC style ProxySupplier. | |
virtual CosEventChannelAdmin::ProxyPushConsumer_ptr | build_proxy (TAO_Notify_SupplierAdmin *sa) |
Build CosEC style ProxyConsumer. | |
virtual void | apply_reactive_concurrency (TAO_Notify_Object &object) |
Apply Reactive concurrency. | |
virtual void | apply_thread_pool_concurrency (TAO_Notify_Object &object, const NotifyExt::ThreadPoolParams &tp_params) |
Apply Thread Pools. | |
virtual void | apply_lane_concurrency (TAO_Notify_Object &object, const NotifyExt::ThreadPoolLanesParams &tpl_params) |
Apply Thread Pools with Lanes. |
Definition at line 48 of file Builder.h.
TAO_Notify_Builder::TAO_Notify_Builder | ( | void | ) |
Definition at line 158 of file Builder.cpp.
References TAO_Notify_AnyEvent_No_Copy::event_type_, and TAO_Notify_EventType::special().
00159 { 00160 // Init the static members. 00161 TAO_Notify_AnyEvent::event_type_ = TAO_Notify_EventType::special (); 00162 }
TAO_Notify_Builder::~TAO_Notify_Builder | ( | ) | [virtual] |
void TAO_Notify_Builder::apply_lane_concurrency | ( | TAO_Notify_Object & | object, | |
const NotifyExt::ThreadPoolLanesParams & | tpl_params | |||
) | [virtual] |
Apply Thread Pools with Lanes.
Reimplemented in TAO_Notify_RT_Builder.
Definition at line 525 of file Builder.cpp.
void TAO_Notify_Builder::apply_reactive_concurrency | ( | TAO_Notify_Object & | object | ) | [virtual] |
Apply Reactive concurrency.
Definition at line 497 of file Builder.cpp.
References ACE_NEW_THROW_EX, TAO_Notify_Reactive_Task::init(), and TAO_Notify_Object::set_worker_task().
Referenced by TAO_Notify_Object::set_qos().
00498 { 00499 TAO_Notify_Reactive_Task* worker_task; 00500 00501 ACE_NEW_THROW_EX (worker_task, 00502 TAO_Notify_Reactive_Task (), 00503 CORBA::NO_MEMORY ()); 00504 00505 object.set_worker_task (worker_task); 00506 00507 worker_task->init (); 00508 }
void TAO_Notify_Builder::apply_thread_pool_concurrency | ( | TAO_Notify_Object & | object, | |
const NotifyExt::ThreadPoolParams & | tp_params | |||
) | [virtual] |
Apply Thread Pools.
Reimplemented in TAO_Notify_RT_Builder.
Definition at line 511 of file Builder.cpp.
References ACE_NEW_THROW_EX, TAO_Notify_Object::admin_properties_, TAO_Notify_ThreadPool_Task::init(), and TAO_Notify_Object::set_worker_task().
00512 { 00513 TAO_Notify_ThreadPool_Task* worker_task = 0; 00514 00515 ACE_NEW_THROW_EX (worker_task, 00516 TAO_Notify_ThreadPool_Task (), 00517 CORBA::NO_MEMORY ()); 00518 00519 object.set_worker_task (worker_task); 00520 00521 worker_task->init (tp_params, object.admin_properties_); 00522 }
TAO_Notify_ConsumerAdmin * TAO_Notify_Builder::build_consumer_admin | ( | TAO_Notify_EventChannel * | ec, | |
const CosNotifyChannelAdmin::AdminID | id | |||
) | [virtual] |
Build ConsumerAdmin during topology restore TODO: this returns a reference to the actual type to accomodate loadable builder/factory there should be an appropriate base class for it to return.
Definition at line 274 of file Builder.cpp.
References TAO_Notify_Object::activate(), TAO_Notify_EventChannel::ca_container_, TAO_Notify_Factory::create(), TAO_Notify_Properties::factory(), TAO_Notify_ConsumerAdmin::init(), and TAO_Notify_Properties::instance().
00277 { 00278 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00279 TAO_Notify_ConsumerAdmin * ca = 0; 00280 factory->create (ca); 00281 00282 ca->init (ec); 00283 00284 CORBA::Object_var obj = ca->activate (ca, id); 00285 00286 // insert admin in CA container. 00287 ec->ca_container_->insert (ca); 00288 return ca; 00289 }
CosNotifyChannelAdmin::ConsumerAdmin_ptr TAO_Notify_Builder::build_consumer_admin | ( | TAO_Notify_EventChannel * | ec, | |
CosNotifyChannelAdmin::InterFilterGroupOperator | op, | |||
CosNotifyChannelAdmin::AdminID_out | id | |||
) | [virtual] |
Build ConsumerAdmin.
Definition at line 245 of file Builder.cpp.
References TAO_Notify_Object::activate(), TAO_Notify_EventChannel::ca_container_, TAO_Notify_Factory::create(), TAO_Notify_Properties::factory(), TAO_Notify_Admin::filter_operator(), TAO_Notify_Object::id(), TAO_Pseudo_Var_T< T >::in(), TAO_Notify_ConsumerAdmin::init(), and TAO_Notify_Properties::instance().
Referenced by TAO_Notify_EventChannel::load_child(), and TAO_Notify_EventChannel::new_for_consumers().
00249 { 00250 CosNotifyChannelAdmin::ConsumerAdmin_var ca_ret; 00251 00252 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00253 00254 TAO_Notify_ConsumerAdmin* ca = 0; 00255 factory->create (ca); 00256 00257 ca->init (ec); 00258 00259 ca->filter_operator (op); 00260 00261 CORBA::Object_var obj = ca->activate (ca); 00262 00263 id = ca->id (); 00264 00265 ca_ret = CosNotifyChannelAdmin::ConsumerAdmin::_narrow (obj.in()); 00266 00267 // insert admin in CA container. 00268 ec->ca_container_->insert (ca); 00269 00270 return ca_ret._retn (); 00271 }
TAO_Notify_EventChannel * TAO_Notify_Builder::build_event_channel | ( | TAO_Notify_EventChannelFactory * | ecf, | |
const CosNotifyChannelAdmin::ChannelID | id, | |||
const char * | ec_name = 0 | |||
) | [virtual] |
Definition at line 224 of file Builder.cpp.
References TAO_Notify_Object::activate(), TAO_Notify_Factory::create(), TAO_Notify_EventChannelFactory::ec_container(), TAO_Notify_Properties::factory(), TAO_Notify_EventChannel::init(), and TAO_Notify_Properties::instance().
00228 { 00229 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00230 00231 TAO_Notify_EventChannel* ec = 0; 00232 factory->create (ec, ec_name); 00233 00234 ec->init (ecf); //, initial_qos, initial_admin 00235 00236 // insert ec in ec container. 00237 ecf->ec_container().insert (ec); 00238 00239 ec->activate (ec, id); 00240 00241 return ec; 00242 }
CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_Builder::build_event_channel | ( | TAO_Notify_EventChannelFactory * | ecf, | |
const CosNotification::QoSProperties & | initial_qos, | |||
const CosNotification::AdminProperties & | initial_admin, | |||
CosNotifyChannelAdmin::ChannelID_out | id, | |||
const char * | ec_name = 0 | |||
) | [virtual] |
Build EventChannel.
Definition at line 198 of file Builder.cpp.
References TAO_Notify_Object::activate(), TAO_Notify_Factory::create(), TAO_Notify_EventChannelFactory::ec_container(), TAO_Notify_Properties::factory(), TAO_Notify_Object::id(), TAO_Pseudo_Var_T< T >::in(), TAO_Notify_EventChannel::init(), and TAO_Notify_Properties::instance().
Referenced by TAO_Notify_EventChannelFactory::create_channel(), and TAO_Notify_EventChannelFactory::load_child().
00204 { 00205 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00206 00207 TAO_Notify_EventChannel* ec = 0; 00208 factory->create (ec, ec_name); 00209 00210 ec->init (ecf, initial_qos, initial_admin); 00211 00212 // insert ec in ec container. 00213 ecf->ec_container().insert (ec); 00214 00215 CORBA::Object_var obj = ec->activate (ec); 00216 00217 // Populate the ID to return. 00218 id = ec->id (); 00219 00220 return CosNotifyChannelAdmin::EventChannel::_narrow (obj.in()); 00221 }
CosNotifyChannelAdmin::EventChannelFactory_ptr TAO_Notify_Builder::build_event_channel_factory | ( | PortableServer::POA_ptr | poa, | |
const char * | factory_name = 0 | |||
) | [virtual] |
Build EventChannel Factory.
Definition at line 184 of file Builder.cpp.
References TAO_Notify_EventChannelFactory::activate_self(), TAO_Notify_Factory::create(), TAO_Notify_Properties::factory(), TAO_Notify_EventChannelFactory::init(), and TAO_Notify_Properties::instance().
Referenced by TAO_CosNotify_Service::create().
00186 { 00187 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00188 00189 // Create ECF 00190 TAO_Notify_EventChannelFactory* ecf = 0; 00191 factory->create (ecf, name); 00192 00193 ecf->init (poa); 00194 return ecf->activate_self (); 00195 }
CosNotifyFilter::FilterFactory_ptr TAO_Notify_Builder::build_filter_factory | ( | PortableServer::POA_ptr | poa | ) | [virtual] |
Build the Filter Factory.
Definition at line 169 of file Builder.cpp.
References ACE_NEW_THROW_EX, TAO_Notify_FilterFactory::create(), and ACE_Dynamic_Service< TYPE >::instance().
Referenced by TAO_Notify_EventChannel::init().
00170 { 00171 TAO_Notify_FilterFactory* ff = ACE_Dynamic_Service<TAO_Notify_FilterFactory>::instance ("TAO_Notify_FilterFactory"); 00172 00173 if (ff == 0) 00174 { 00175 ACE_NEW_THROW_EX (ff, 00176 TAO_Notify_ETCL_FilterFactory (), 00177 CORBA::NO_MEMORY ()); 00178 } 00179 00180 return ff->create (poa); 00181 }
CosEventChannelAdmin::ProxyPushConsumer_ptr TAO_Notify_Builder::build_proxy | ( | TAO_Notify_SupplierAdmin * | sa | ) | [virtual] |
Build CosEC style ProxyConsumer.
Definition at line 485 of file Builder.cpp.
References TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build().
00486 { 00487 CosNotifyChannelAdmin::ProxyID proxy_id; 00488 00489 TAO_Notify_CosEC_ProxyPushConsumer_Builder pb; 00490 00491 CosNotification::QoSProperties initial_qos; 00492 00493 return pb.build (sa, proxy_id, initial_qos); 00494 }
CosEventChannelAdmin::ProxyPushSupplier_ptr TAO_Notify_Builder::build_proxy | ( | TAO_Notify_ConsumerAdmin * | ca | ) | [virtual] |
Build CosEC style ProxySupplier.
Definition at line 473 of file Builder.cpp.
References TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build().
00474 { 00475 CosNotifyChannelAdmin::ProxyID proxy_id; 00476 00477 TAO_Notify_CosEC_ProxyPushSupplier_Builder pb; 00478 00479 CosNotification::QoSProperties initial_qos; 00480 00481 return pb.build (ca, proxy_id, initial_qos); 00482 }
TAO_Notify_ProxySupplier * TAO_Notify_Builder::build_proxy | ( | TAO_Notify_ConsumerAdmin * | ca, | |
CosNotifyChannelAdmin::ClientType | ctype, | |||
const CosNotifyChannelAdmin::ProxyID | proxy_id | |||
) | [virtual] |
Reload ProxySupplier.
Definition at line 440 of file Builder.cpp.
References CosNotifyChannelAdmin::ANY_EVENT, TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::SEQUENCE_EVENT, and CosNotifyChannelAdmin::STRUCTURED_EVENT.
00443 { 00444 switch (ctype) 00445 { 00446 case CosNotifyChannelAdmin::ANY_EVENT: 00447 { 00448 TAO_Notify_ProxyPushSupplier_Builder pb; 00449 return pb.build (ca, proxy_id); 00450 } 00451 break; 00452 00453 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00454 { 00455 TAO_Notify_StructuredProxyPushSupplier_Builder pb; 00456 return pb.build (ca, proxy_id); 00457 } 00458 break; 00459 00460 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00461 { 00462 TAO_Notify_SequenceProxyPushSupplier_Builder pb; 00463 return pb.build (ca, proxy_id); 00464 } 00465 break; 00466 00467 default: 00468 throw CORBA::BAD_PARAM (); 00469 } 00470 }
CosNotifyChannelAdmin::ProxySupplier_ptr TAO_Notify_Builder::build_proxy | ( | TAO_Notify_ConsumerAdmin * | ca, | |
CosNotifyChannelAdmin::ClientType | ctype, | |||
CosNotifyChannelAdmin::ProxyID_out | proxy_id, | |||
const CosNotification::QoSProperties & | initial_qos | |||
) | [virtual] |
Build ProxySupplier.
Definition at line 373 of file Builder.cpp.
References CosNotifyChannelAdmin::ANY_EVENT, TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::SEQUENCE_EVENT, and CosNotifyChannelAdmin::STRUCTURED_EVENT.
00377 { 00378 switch (ctype) 00379 { 00380 case CosNotifyChannelAdmin::ANY_EVENT: 00381 { 00382 TAO_Notify_ProxyPushSupplier_Builder pb; 00383 return pb.build (ca, proxy_id, initial_qos); 00384 } 00385 break; 00386 00387 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00388 { 00389 TAO_Notify_StructuredProxyPushSupplier_Builder pb; 00390 return pb.build (ca, proxy_id, initial_qos); 00391 } 00392 break; 00393 00394 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00395 { 00396 TAO_Notify_SequenceProxyPushSupplier_Builder pb; 00397 return pb.build (ca, proxy_id, initial_qos); 00398 } 00399 break; 00400 00401 default: 00402 throw CORBA::BAD_PARAM (); 00403 } 00404 }
TAO_Notify_ProxyConsumer * TAO_Notify_Builder::build_proxy | ( | TAO_Notify_SupplierAdmin * | sa, | |
CosNotifyChannelAdmin::ClientType | ctype, | |||
const CosNotifyChannelAdmin::ProxyID | proxy_id | |||
) | [virtual] |
Reload ProxyConsumer.
Definition at line 407 of file Builder.cpp.
References CosNotifyChannelAdmin::ANY_EVENT, TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::SEQUENCE_EVENT, and CosNotifyChannelAdmin::STRUCTURED_EVENT.
00410 { 00411 switch (ctype) 00412 { 00413 case CosNotifyChannelAdmin::ANY_EVENT: 00414 { 00415 TAO_Notify_ProxyPushConsumer_Builder pb; 00416 return pb.build (sa, proxy_id); 00417 } 00418 break; 00419 00420 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00421 { 00422 TAO_Notify_StructuredProxyPushConsumer_Builder pb; 00423 return pb.build (sa, proxy_id); 00424 } 00425 break; 00426 00427 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00428 { 00429 TAO_Notify_SequenceProxyPushConsumer_Builder pb; 00430 return pb.build (sa, proxy_id); 00431 } 00432 break; 00433 00434 default: 00435 throw CORBA::BAD_PARAM (); 00436 } 00437 }
CosNotifyChannelAdmin::ProxyConsumer_ptr TAO_Notify_Builder::build_proxy | ( | TAO_Notify_SupplierAdmin * | sa, | |
CosNotifyChannelAdmin::ClientType | ctype, | |||
CosNotifyChannelAdmin::ProxyID_out | proxy_id, | |||
const CosNotification::QoSProperties & | initial_qos | |||
) | [virtual] |
Build ProxyConsumer.
Definition at line 339 of file Builder.cpp.
References CosNotifyChannelAdmin::ANY_EVENT, TAO_Notify_Proxy_Builder_T< PROXY_IMPL, PROXY, PROXY_PTR, PROXY_VAR, PARENT >::build(), CosNotifyChannelAdmin::SEQUENCE_EVENT, and CosNotifyChannelAdmin::STRUCTURED_EVENT.
Referenced by TAO_Notify_SupplierAdmin::load_proxy(), TAO_Notify_ConsumerAdmin::load_proxy(), TAO_Notify_SupplierAdmin::obtain_notification_push_consumer(), TAO_Notify_SupplierAdmin::obtain_notification_push_consumer_with_qos(), TAO_Notify_ConsumerAdmin::obtain_notification_push_supplier(), TAO_Notify_ConsumerAdmin::obtain_notification_push_supplier_with_qos(), TAO_Notify_SupplierAdmin::obtain_push_consumer(), and TAO_Notify_ConsumerAdmin::obtain_push_supplier().
00343 { 00344 switch (ctype) 00345 { 00346 case CosNotifyChannelAdmin::ANY_EVENT: 00347 { 00348 TAO_Notify_ProxyPushConsumer_Builder pb; 00349 return pb.build (sa, proxy_id, initial_qos); 00350 } 00351 break; 00352 00353 case CosNotifyChannelAdmin::STRUCTURED_EVENT: 00354 { 00355 TAO_Notify_StructuredProxyPushConsumer_Builder pb; 00356 return pb.build (sa, proxy_id, initial_qos); 00357 } 00358 break; 00359 00360 case CosNotifyChannelAdmin::SEQUENCE_EVENT: 00361 { 00362 TAO_Notify_SequenceProxyPushConsumer_Builder pb; 00363 return pb.build (sa, proxy_id, initial_qos); 00364 } 00365 break; 00366 00367 default: 00368 throw CORBA::BAD_PARAM (); 00369 } 00370 }
TAO_Notify_SupplierAdmin * TAO_Notify_Builder::build_supplier_admin | ( | TAO_Notify_EventChannel * | ec, | |
const CosNotifyChannelAdmin::AdminID | id | |||
) | [virtual] |
Build ConsumerAdmin during topology restore TODO: this returns a reference to the actual type to accomodate loadable builder/factory there should be an appropriate base class for it to return.
Definition at line 320 of file Builder.cpp.
References TAO_Notify_Object::activate(), TAO_Notify_Factory::create(), TAO_Notify_Properties::factory(), TAO_Notify_SupplierAdmin::init(), TAO_Notify_Properties::instance(), and TAO_Notify_EventChannel::sa_container().
00323 { 00324 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00325 TAO_Notify_SupplierAdmin * sa = 0; 00326 factory->create (sa); 00327 00328 sa->init (ec); 00329 00330 CORBA::Object_var obj = sa->activate (sa, id); 00331 00332 // insert admin in CA container. 00333 ec->sa_container().insert (sa); 00334 00335 return sa; 00336 }
CosNotifyChannelAdmin::SupplierAdmin_ptr TAO_Notify_Builder::build_supplier_admin | ( | TAO_Notify_EventChannel * | ec, | |
CosNotifyChannelAdmin::InterFilterGroupOperator | op, | |||
CosNotifyChannelAdmin::AdminID_out | id | |||
) | [virtual] |
Build SupplierAdmin.
Definition at line 292 of file Builder.cpp.
References TAO_Notify_Object::activate(), TAO_Notify_Factory::create(), TAO_Notify_Properties::factory(), TAO_Notify_Admin::filter_operator(), TAO_Notify_Object::id(), TAO_Pseudo_Var_T< T >::in(), TAO_Notify_SupplierAdmin::init(), TAO_Notify_Properties::instance(), and TAO_Notify_EventChannel::sa_container().
Referenced by TAO_Notify_EventChannel::load_child(), and TAO_Notify_EventChannel::new_for_suppliers().
00295 { 00296 CosNotifyChannelAdmin::SupplierAdmin_var sa_ret; 00297 00298 TAO_Notify_Factory* factory = TAO_Notify_PROPERTIES::instance ()->factory (); 00299 00300 TAO_Notify_SupplierAdmin* sa = 0; 00301 factory->create (sa); 00302 00303 sa->init (ec); 00304 00305 sa->filter_operator (op); 00306 00307 CORBA::Object_var obj = sa->activate (sa); 00308 00309 id = sa->id (); 00310 00311 sa_ret = CosNotifyChannelAdmin::SupplierAdmin::_narrow (obj.in()); 00312 00313 // insert admin in SA container. 00314 ec->sa_container().insert (sa); 00315 00316 return sa_ret._retn (); 00317 }