summaryrefslogtreecommitdiff
path: root/ACE/TAO/orbsvcs/performance-tests/RTEvent/lib/RTEC_Initializer.cpp
diff options
context:
space:
mode:
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.cpp46
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;
+}