diff options
Diffstat (limited to 'ACE/TAO/orbsvcs/performance-tests/RTEvent/lib/RTEC_Initializer.cpp')
-rw-r--r-- | ACE/TAO/orbsvcs/performance-tests/RTEvent/lib/RTEC_Initializer.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/ACE/TAO/orbsvcs/performance-tests/RTEvent/lib/RTEC_Initializer.cpp b/ACE/TAO/orbsvcs/performance-tests/RTEvent/lib/RTEC_Initializer.cpp new file mode 100644 index 00000000000..6b843e524bf --- /dev/null +++ b/ACE/TAO/orbsvcs/performance-tests/RTEvent/lib/RTEC_Initializer.cpp @@ -0,0 +1,46 @@ +/** + * @file RTEC_Initializer.cpp + * + * $Id$ + * + * @author Carlos O'Ryan <coryan@uci.edu> + */ + +#include "RTEC_Initializer.h" +#include "RTCORBA_Setup.h" + +#include "orbsvcs/Event/EC_Event_Channel.h" +#include "orbsvcs/Event/EC_Default_Factory.h" +#include "orbsvcs/Event/EC_RTCORBA_Factory.h" + +#include "ace/Dynamic_Service.h" + +ACE_RCSID (TAO_PERF_RTEC, + RTEC_Initializer, + "$Id$") + +TAO_EC_Event_Channel * +RTEC_Initializer::create (PortableServer::POA_ptr consumer_poa, + PortableServer::POA_ptr supplier_poa, + RTCORBA_Setup * rtcorba_setup) +{ + TAO_EC_Event_Channel_Attributes attr (consumer_poa, + supplier_poa); + + if (rtcorba_setup == 0) + { + return new TAO_EC_Event_Channel (attr); + } + + TAO_EC_Factory *body = + ACE_Dynamic_Service<TAO_EC_Factory>::instance ("EC_Factory"); + auto_ptr<TAO_EC_Factory> factory ( + new TAO_EC_RTCORBA_Factory (body, + rtcorba_setup->lanes ())); + + TAO_EC_Event_Channel *ec = + new TAO_EC_Event_Channel (attr, factory.get (), 1); + factory.release (); + + return ec; +} |