summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthrall <thrall@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-05-12 20:49:44 +0000
committerthrall <thrall@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-05-12 20:49:44 +0000
commit7da86d13138dc8549315eeb2917eaee112f16cac (patch)
tree754923d51d1078e28491cbe11944e8cce750a524
parentc22785592fa1030405719012b28502c7a37fd072 (diff)
downloadATCD-7da86d13138dc8549315eeb2917eaee112f16cac.tar.gz
Moved START and STOP to bracket orb->run() and use orb->run() to limit runtime instead of EC_Event_Limit
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Consumer_EC.cpp77
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Supplier_EC.cpp72
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp72
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp84
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Consumer_EC.cpp50
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Kokyu_EventService.cpp318
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Supplier_EC.cpp62
7 files changed, 135 insertions, 600 deletions
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Consumer_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Consumer_EC.cpp
index dc6843fbfa3..7948de9b9bf 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Consumer_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Consumer_EC.cpp
@@ -13,7 +13,6 @@
#include "orbsvcs/Event/EC_Kokyu_Factory.h"
#include "orbsvcs/Time_Utilities.h"
#include "orbsvcs/Event_Service_Constants.h"
-#include "orbsvcs/Event/EC_Event_Limit.h"
#include "tao/ORB_Core.h"
#include "Kokyu_EC.h"
@@ -76,27 +75,6 @@ public:
ACE_DEBUG((LM_DEBUG,"Once_Handler (%P|%t) handle_service_start() START\n"));
this->handled_start_++; //set to true
- // Uncommenting this causes the Supplier_EC event type 18 to never be pushed again (despite the timeout happening)
- //trigger Task 3!
- /*
- kokyu_ec_->add_timeout_consumer(
- supplier_impl_,
- timeout_handler_impl_,
- timeout_entry_point_,
- period_,
- crit_,
- imp_
- ACE_ENV_ARG_PARAMETER
- );
- ACE_CHECK;
-
- //should be able to just call Kokyu_EC::start() to recompute schedule
- //BEWARE if kokyu_ec_ overrides start() to do stuff we don't want to redo!
- //which is why we specify the Kokyu_EC version of the function!
- kokyu_ec_->Kokyu_EC::start(ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
- */
-
//WARNING: depending on Reactor, might not be a RT solution!
this->timer_handle_ = this->reactor_->schedule_timer(this->timeout_handler_impl_,
@@ -129,14 +107,6 @@ private:
ACE_Time_Value period_;
long timer_handle_;
- /*
- Timeout_Consumer * timeout_consumer_impl_;
- Supplier * supplier_impl_;
- const char * timeout_entry_point_;
- RtecScheduler::Criticality_t crit_;
- RtecScheduler::Importance_t imp_;
- Kokyu_EC * kokyu_ec_;
- */
};
class Consumer_EC : public Kokyu_EC
@@ -287,24 +257,15 @@ int
main (int argc, char* argv[])
{
//TAO_EC_Default_Factory::init_svcs ();
-#ifdef ACE_HAS_DSUI
- ds_control* ds_cntl = new ds_control ("Federated_Test_Consumer","consumer_enabled.dsui");
-#endif // ACE_HAS_DSUI
-
TAO_EC_Kokyu_Factory::init_svcs ();
- //@BT
-#ifdef ACE_HAS_DSUI
- // ACE_Object_Counter::object_id oid = ACE_OBJECT_COUNTER->increment();
- // DSTRM_EVENT(MAIN_GROUP_FAM, START, 1, sizeof(EC_Event_Counter::event_id), (char*)&eid);
- ACE_Time_Value now(ACE_OS::gettimeofday());
- ACE_OS::printf("Consumer_EC START at %isec %iusec\n",now.sec(),now.usec());
- DSTRM_EVENT(MAIN_GROUP_FAM, START, 0, 0, NULL);
-#endif //ACE_HAS_DSUI
-
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
+#ifdef ACE_HAS_DSUI
+ ds_control ds_cntl("Federated_Test_Consumer","consumer_enabled.dsui");
+#endif // ACE_HAS_DSUI
+
// ORB initialization boiler plate...
CORBA::ORB_var orb =
CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER);
@@ -312,8 +273,6 @@ main (int argc, char* argv[])
if (parse_args (argc, argv) == -1)
{
- ACE_ERROR ((LM_ERROR,
- "Usage: Service [-o IOR_file_name]\n"));
return 1;
}
@@ -381,24 +340,26 @@ main (int argc, char* argv[])
//DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 1, 0, NULL);
ACE_DEBUG((LM_DEBUG,"Consumer_EC thread %t WORKER_ACTIVATED at %u\n",ACE_OS::gettimeofday().msec()));
DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 0, 0, NULL);
-#endif //ACE_HAS_DSUI
-#ifdef ACE_HAS_DSUI
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb, ds_cntl);
-#else
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb);
+ //@BT
+ // ACE_Object_Counter::object_id oid = ACE_OBJECT_COUNTER->increment();
+ // DSTRM_EVENT(MAIN_GROUP_FAM, START, 1, sizeof(EC_Event_Counter::event_id), (char*)&eid);
+ ACE_Time_Value now(ACE_OS::gettimeofday());
+ ACE_OS::printf("Consumer_EC START at %isec %iusec\n",now.sec(),now.usec());
+ DSTRM_EVENT(MAIN_GROUP_FAM, START, 0, 0, NULL);
#endif //ACE_HAS_DSUI
- ACE_Time_Value ticker (125);
- long timer_id = rt.reactor()->schedule_timer(e_limit,0, ticker);
- if (timer_id < 0)
- {
- ACE_DEBUG((LM_DEBUG,"Consumer_EC (%t) Could not schedule EC_Event_Limit timeout\n"));
- }
rt.activate(); //need thread creation flags? or priority?
- orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_Time_Value stop_time(300,0);
+ orb->run (stop_time ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
+#ifdef ACE_HAS_DSUI
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+ ACE_DEBUG((LM_DEBUG,"Consumer_EC thread %t STOP at %u\n",ACE_OS::gettimeofday().msec()));
+ DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+#endif //ACE_HAS_DSUI
// ****************************************************************
// We should do a lot of cleanup (disconnect from the EC,
@@ -408,7 +369,7 @@ main (int argc, char* argv[])
}
ACE_CATCHANY
{
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Consumer_EC - Service");
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Consumer_EC");
return 1;
}
ACE_ENDTRY;
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Supplier_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Supplier_EC.cpp
index 56fce0243e5..d50180df148 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Supplier_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/Supplier_EC.cpp
@@ -12,7 +12,6 @@
#include "orbsvcs/Event/EC_Kokyu_Factory.h"
#include "orbsvcs/Time_Utilities.h"
#include "orbsvcs/Event_Service_Constants.h"
-#include "orbsvcs/Event/EC_Event_Limit.h"
#include "tao/ORB_Core.h"
#include "Kokyu_EC.h"
@@ -205,22 +204,16 @@ int
main (int argc, char* argv[])
{
//TAO_EC_Default_Factory::init_svcs ();
-#ifdef ACE_HAS_DSUI
- ds_control* ds_cntl = new ds_control ("Federated_Test_Supplier","supplier_enabled.dsui");
-#endif //ACE_HAS_DSUI
-
TAO_EC_Kokyu_Factory::init_svcs ();
TAO_EC_Gateway_IIOP_Factory::init_svcs ();
- //@BT
- //DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
- ACE_Time_Value now(ACE_OS::gettimeofday());
- ACE_OS::printf("Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
- DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
-
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
+#ifdef ACE_HAS_DSUI
+ ds_control ds_cntl("Federated_Test_Supplier","supplier_enabled.dsui");
+#endif //ACE_HAS_DSUI
+
// ORB initialization boiler plate...
CORBA::ORB_var orb =
CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER);
@@ -228,10 +221,6 @@ main (int argc, char* argv[])
if (parse_args (argc, argv) == -1)
{
- ACE_ERROR ((LM_ERROR,
- "Usage: %s -s <rms|muf|edf>"
- "\n",
- argv [0]));
return 1;
}
@@ -285,6 +274,7 @@ main (int argc, char* argv[])
supplier_ec.start(ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+#ifdef ACE_HAS_DSUI
//@BT: Timeouts start when orb starts, similar to starting the DT worker thread
//DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 1, 0, NULL);
ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t WORKER_ACTIVATED at %u\n",ACE_OS::gettimeofday().msec()));
@@ -293,57 +283,35 @@ main (int argc, char* argv[])
ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t WORKER_STARTED at %u\n",ACE_OS::gettimeofday().msec()));
DSTRM_EVENT (WORKER_GROUP_FAM, WORKER_STARTED, 0, 0, NULL);
-#ifdef ACE_HAS_DSUI
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb, ds_cntl);
-#else
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb);
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
+ ACE_Time_Value now(ACE_OS::gettimeofday());
+ ACE_OS::printf("Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
+ DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
#endif //ACE_HAS_DSUI
- ACE_Time_Value ticker (120);
- //orb->orb_core()->reactor()->schedule_timer(e_limit,0, ticker);
- long timer_id = rt.reactor()->schedule_timer(e_limit,0,ticker);
- if (timer_id < 0)
- {
- ACE_DEBUG((LM_DEBUG,"Supplier_EC (%t) could not schedule EC_Event_Limit timer\n"));
- }
rt.activate(); //need thread creation flags? or priority?
- orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_Time_Value stop_time(300,0);
+ orb->run (stop_time ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
- // ****************************************************************
-
- //@BT: ORB shutting down; currently, this isn't expected to happen
- //DSTRM_EVENT (MAIN_GROUP_FAM, CALL_SERVER_SHUTDOWN, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t CALL_SERVER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT (MAIN_GROUP_FAM, CALL_SERVER_SHUTDOWN, 0, 0, NULL);
-
- //@BT: Scheduler shuts down with the EC and ORB
- //DSTRM_EVENT (MAIN_GROUP_FAM, SCHEDULER_SHUTDOWN, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t SCHEDULER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT (MAIN_GROUP_FAM, SCHEDULER_SHUTDOWN, 0, 0, NULL);
-
- // We should do a lot of cleanup (disconnect from the EC,
- // deactivate all the objects with the POA, etc.) but this is
- // just a simple demo so we are going to be lazy.
+#ifdef ACE_HAS_DSUI
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+ ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t STOP at %u\n",ACE_OS::gettimeofday().msec()));
+ DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+#endif //ACE_HAS_DSUI
- //@BT: Done clean up
- //DSTRM_EVENT (MAIN_GROUP_FAM, AFTER_SERVER_SHUTDOWN, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t AFTER_SERVER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT (MAIN_GROUP_FAM, AFTER_SERVER_SHUTDOWN, 0, 0, NULL);
+ // ****************************************************************
}
ACE_CATCHANY
{
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Service");
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Supplier_EC");
return 1;
}
ACE_ENDTRY;
- //@BT
- //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t STOP at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
-
return 0;
}
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp
index 81094c83f9f..e27f26db619 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp
@@ -12,7 +12,6 @@
#include "orbsvcs/Event/EC_Kokyu_Factory.h"
#include "orbsvcs/Time_Utilities.h"
#include "orbsvcs/Event_Service_Constants.h"
-#include "orbsvcs/Event/EC_Event_Limit.h"
#include "tao/ORB_Core.h"
#include "Kokyu_EC.h"
@@ -153,18 +152,12 @@ main (int argc, char* argv[])
{
//TAO_EC_Default_Factory::init_svcs ();
#ifdef ACE_HAS_DSUI
- ds_control* ds_cntl = new ds_control ("Chain_Test_Consumer_Supplier","consumer_supplier_enabled.dsui");
+ ds_control ds_cntl("Chain_Test_Consumer_Supplier","consumer_supplier_enabled.dsui");
#endif //ACE_HAS_DSUI
TAO_EC_Kokyu_Factory::init_svcs ();
TAO_EC_Gateway_IIOP_Factory::init_svcs ();
- //@BT
- //DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
- ACE_Time_Value now(ACE_OS::gettimeofday());
- ACE_OS::printf("Consumer_Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
- DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
-
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
@@ -233,67 +226,54 @@ main (int argc, char* argv[])
supplier_ec.start(ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+#ifdef ACE_HAS_DSUI
//@BT: Timeouts start when orb starts, similar to starting the DT worker thread
//DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC thread %t WORKER_ACTIVATED at %u\n",ACE_OS::gettimeofday().msec()));
+ ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC (%P|%t) WORKER_ACTIVATED at %u\n",ACE_OS::gettimeofday().msec()));
DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 0, 0, NULL);
//DSTRM_EVENT (WORKER_GROUP_FAM, WORKER_STARTED, m_id, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC thread %t WORKER_STARTED at %u\n",ACE_OS::gettimeofday().msec()));
+ ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC (%P|%t) WORKER_STARTED at %u\n",ACE_OS::gettimeofday().msec()));
DSTRM_EVENT (WORKER_GROUP_FAM, WORKER_STARTED, 0, 0, NULL);
-#ifdef ACE_HAS_DSUI
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb, ds_cntl); //will delete ds_cntl
-#else
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb);
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
+ ACE_Time_Value now(ACE_OS::gettimeofday());
+ ACE_OS::printf("Consumer_Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
+ DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
#endif //ACE_HAS_DSUI
- ACE_Time_Value ticker (305);
- //orb->orb_core()->reactor()->schedule_timer(e_limit,0, ticker);
- long timer_id = rt.reactor()->schedule_timer(e_limit,0,ticker);
- if (timer_id < 0)
- {
- ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC (%t) could not schedule EC_Event_Limit timer\n"));
- }
rt.activate(); //need thread creation flags? or priority?
- orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_Time_Value stop_time(300,0);
+ orb->run (stop_time ACE_ENV_ARG_PARAMETER);
+ //orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
- // ****************************************************************
-
- //@BT: ORB shutting down; currently, this isn't expected to happen
- //DSTRM_EVENT (MAIN_GROUP_FAM, CALL_SERVER_SHUTDOWN, 1, 0, NULL);
- //ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC thread %t CALL_SERVER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- //DSTRM_EVENT (MAIN_GROUP_FAM, CALL_SERVER_SHUTDOWN, 0, 0, NULL);
+#ifdef ACE_HAS_DSUI
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+ ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC (%P|%t) STOP at %u\n",ACE_OS::gettimeofday().msec()));
+ DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+#endif //ACE_HAS_DSUI
- //@BT: Scheduler shuts down with the EC and ORB
- //DSTRM_EVENT (MAIN_GROUP_FAM, SCHEDULER_SHUTDOWN, 1, 0, NULL);
- //ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC thread %t SCHEDULER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- //DSTRM_EVENT (MAIN_GROUP_FAM, SCHEDULER_SHUTDOWN, 0, 0, NULL);
+ // ****************************************************************
// We should do a lot of cleanup (disconnect from the EC,
// deactivate all the objects with the POA, etc.) but this is
// just a simple demo so we are going to be lazy.
- //@BT: Done clean up
- //DSTRM_EVENT (MAIN_GROUP_FAM, AFTER_SERVER_SHUTDOWN, 1, 0, NULL);
- //ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC thread %t AFTER_SERVER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- //DSTRM_EVENT (MAIN_GROUP_FAM, AFTER_SERVER_SHUTDOWN, 0, 0, NULL);
-
+ ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC (%P|%t) Shutting down\n"));
+ orb->shutdown(ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ orb->destroy(ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
}
ACE_CATCHANY
{
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Service");
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Consumer_Supplier_EC");
return 1;
}
ACE_ENDTRY;
- /*
- //@BT
- //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC thread %t STOP at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
-
- delete ds_cntl;
- */
+
return 0;
}
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp
index e17fc465cb2..d4a3f5f63e3 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp
@@ -12,7 +12,6 @@
#include "orbsvcs/Event/EC_Kokyu_Factory.h"
#include "orbsvcs/Time_Utilities.h"
#include "orbsvcs/Event_Service_Constants.h"
-#include "orbsvcs/Event/EC_Event_Limit.h"
#include "Kokyu_EC.h"
#include "Consumer.h"
@@ -166,22 +165,16 @@ int
main (int argc, char* argv[])
{
//TAO_EC_Default_Factory::init_svcs ();
-#ifdef ACE_HAS_DSUI
- ds_control* ds_cntl = new ds_control ("Chain_Test_Supplier","supplier_enabled.dsui");
-#endif //ACE_HAS_DSUI
-
TAO_EC_Kokyu_Factory::init_svcs ();
TAO_EC_Gateway_IIOP_Factory::init_svcs ();
- //@BT
- //DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
- ACE_Time_Value now(ACE_OS::gettimeofday());
- ACE_OS::printf("Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
- DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
-
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
+#ifdef ACE_HAS_DSUI
+ ds_control ds_cntl("Chain_Test_Supplier","supplier_enabled.dsui");
+#endif //ACE_HAS_DSUI
+
// ORB initialization boiler plate...
CORBA::ORB_var orb =
CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER);
@@ -189,10 +182,6 @@ main (int argc, char* argv[])
if (parse_args (argc, argv) == -1)
{
- ACE_ERROR ((LM_ERROR,
- "Usage: %s -s <rms|muf|edf>"
- "\n",
- argv [0]));
return 1;
}
@@ -246,68 +235,55 @@ main (int argc, char* argv[])
supplier_ec.start(ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+#ifdef ACE_HAS_DSUI
//@BT: Timeouts start when orb starts, similar to starting the DT worker thread
//DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t WORKER_ACTIVATED at %u\n",ACE_OS::gettimeofday().msec()));
+ ACE_DEBUG((LM_DEBUG,"Supplier_EC (%P|%t) WORKER_ACTIVATED at %u\n",ACE_OS::gettimeofday().msec()));
DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 0, 0, NULL);
//DSTRM_EVENT (WORKER_GROUP_FAM, WORKER_STARTED, m_id, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t WORKER_STARTED at %u\n",ACE_OS::gettimeofday().msec()));
+ ACE_DEBUG((LM_DEBUG,"Supplier_EC (%P|%t) WORKER_STARTED at %u\n",ACE_OS::gettimeofday().msec()));
DSTRM_EVENT (WORKER_GROUP_FAM, WORKER_STARTED, 0, 0, NULL);
-#ifdef ACE_HAS_DSUI
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb, ds_cntl); //will delete ds_cntl
-#else
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb);
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
+ ACE_Time_Value now(ACE_OS::gettimeofday());
+ ACE_OS::printf("Consumer_Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
+ DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
#endif //ACE_HAS_DSUI
- ACE_Time_Value ticker (100);//310);
- //orb->orb_core()->reactor()->schedule_timer(e_limit,0, ticker);
- long timer_id = rt.reactor()->schedule_timer(e_limit,0,ticker);
- if (timer_id < 0)
- {
- ACE_DEBUG((LM_DEBUG,"Supplier_EC (%t) could not schedule EC_Event_Limit timer\n"));
- }
rt.activate(); //need thread creation flags? or priority?
- orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_Time_Value stop_time(10,0);
+ //ACE_Time_Value stop_time(300,0);
+ orb->run (stop_time ACE_ENV_ARG_PARAMETER);
+ //orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
- // ****************************************************************
-
- //@BT: ORB shutting down; currently, this isn't expected to happen
- //DSTRM_EVENT (MAIN_GROUP_FAM, CALL_SERVER_SHUTDOWN, 1, 0, NULL);
- //ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t CALL_SERVER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- //DSTRM_EVENT (MAIN_GROUP_FAM, CALL_SERVER_SHUTDOWN, 0, 0, NULL);
+#ifdef ACE_HAS_DSUI
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+ ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC (%P|%t) STOP at %u\n",ACE_OS::gettimeofday().msec()));
+ DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+#endif //ACE_HAS_DSUI
- //@BT: Scheduler shuts down with the EC and ORB
- //DSTRM_EVENT (MAIN_GROUP_FAM, SCHEDULER_SHUTDOWN, 1, 0, NULL);
- //ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t SCHEDULER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- //DSTRM_EVENT (MAIN_GROUP_FAM, SCHEDULER_SHUTDOWN, 0, 0, NULL);
+ // ****************************************************************
// We should do a lot of cleanup (disconnect from the EC,
// deactivate all the objects with the POA, etc.) but this is
// just a simple demo so we are going to be lazy.
- //@BT: Done clean up
- //DSTRM_EVENT (MAIN_GROUP_FAM, AFTER_SERVER_SHUTDOWN, 1, 0, NULL);
- //ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t AFTER_SERVER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- //DSTRM_EVENT (MAIN_GROUP_FAM, AFTER_SERVER_SHUTDOWN, 0, 0, NULL);
-
+ ACE_DEBUG((LM_DEBUG,"Supplier_EC (%P|%t) Shutting down\n"));
+ orb->shutdown(ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ orb->destroy(ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK;
}
ACE_CATCHANY
{
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Service");
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Supplier_EC");
return 1;
}
ACE_ENDTRY;
- /*
- //@BT
- //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t STOP at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
-
- //Clean up DSUI stuff
- delete ds_cntl;
- */
+
return 0;
}
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Consumer_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Consumer_EC.cpp
index 8dc4901816a..ede6fab6f1e 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Consumer_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Consumer_EC.cpp
@@ -13,7 +13,6 @@
#include "orbsvcs/Event/EC_Kokyu_Factory.h"
#include "orbsvcs/Time_Utilities.h"
#include "orbsvcs/Event_Service_Constants.h"
-#include "orbsvcs/Event/EC_Event_Limit.h"
#include "tao/ORB_Core.h"
#include "Kokyu_EC.h"
@@ -192,24 +191,15 @@ int
main (int argc, char* argv[])
{
//TAO_EC_Default_Factory::init_svcs ();
-#ifdef ACE_HAS_DSUI
- ds_control* ds_cntl = new ds_control ("Fan_Test_Consumer","consumer_enabled.dsui");
-#endif // ACE_HAS_DSUI
-
TAO_EC_Kokyu_Factory::init_svcs ();
- //@BT
-#ifdef ACE_HAS_DSUI
- // ACE_Object_Counter::object_id oid = ACE_OBJECT_COUNTER->increment();
- // DSTRM_EVENT(MAIN_GROUP_FAM, START, 1, sizeof(EC_Event_Counter::event_id), (char*)&eid);
- ACE_Time_Value now(ACE_OS::gettimeofday());
- ACE_OS::printf("Consumer_EC START at %isec %iusec\n",now.sec(),now.usec());
- DSTRM_EVENT(MAIN_GROUP_FAM, START, 0, 0, NULL);
-#endif //ACE_HAS_DSUI
-
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
+#ifdef ACE_HAS_DSUI
+ ds_control ds_cntl("Fan_Test_Consumer","consumer_enabled.dsui");
+#endif // ACE_HAS_DSUI
+
// ORB initialization boiler plate...
CORBA::ORB_var orb =
CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER);
@@ -217,8 +207,6 @@ main (int argc, char* argv[])
if (parse_args (argc, argv) == -1)
{
- ACE_ERROR ((LM_ERROR,
- "Usage: Service [-o IOR_file_name]\n"));
return 1;
}
@@ -286,24 +274,28 @@ main (int argc, char* argv[])
//DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 1, 0, NULL);
ACE_DEBUG((LM_DEBUG,"Consumer_EC thread %t WORKER_ACTIVATED at %u\n",ACE_OS::gettimeofday().msec()));
DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 0, 0, NULL);
-#endif //ACE_HAS_DSUI
-#ifdef ACE_HAS_DSUI
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb, ds_cntl);
-#else
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb);
+ //@BT
+ // ACE_Object_Counter::object_id oid = ACE_OBJECT_COUNTER->increment();
+ // DSTRM_EVENT(MAIN_GROUP_FAM, START, 1, sizeof(EC_Event_Counter::event_id), (char*)&eid);
+ ACE_Time_Value now(ACE_OS::gettimeofday());
+ ACE_OS::printf("Consumer_EC START at %isec %iusec\n",now.sec(),now.usec());
+ DSTRM_EVENT(MAIN_GROUP_FAM, START, 0, 0, NULL);
#endif //ACE_HAS_DSUI
- ACE_Time_Value ticker (125);
- long timer_id = rt.reactor()->schedule_timer(e_limit,0, ticker);
- if (timer_id < 0)
- {
- ACE_DEBUG((LM_DEBUG,"Consumer_EC (%t) Could not schedule EC_Event_Limit timeout\n"));
- }
rt.activate(); //need thread creation flags? or priority?
- orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_Time_Value stop_time(300,0);
+ orb->run (stop_time ACE_ENV_ARG_PARAMETER);
+ //orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+#ifdef ACE_HAS_DSUI
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+ ACE_DEBUG((LM_DEBUG,"Consumer_EC thread %t STOP at %u\n",ACE_OS::gettimeofday().msec()));
+ DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+#endif //ACE_HAS_DSUI
+
// ****************************************************************
// We should do a lot of cleanup (disconnect from the EC,
@@ -313,7 +305,7 @@ main (int argc, char* argv[])
}
ACE_CATCHANY
{
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Consumer_EC - Service");
+ ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Consumer_EC");
return 1;
}
ACE_ENDTRY;
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Kokyu_EventService.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Kokyu_EventService.cpp
deleted file mode 100644
index d6b3bd80d8f..00000000000
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Kokyu_EventService.cpp
+++ /dev/null
@@ -1,318 +0,0 @@
-// $Id$
-
-#include "ace/SString.h"
-#include "ace/Get_Opt.h"
-#include "ace/Sched_Params.h"
-
-#include "orbsvcs/Event/EC_Kokyu_Factory.h"
-#include "orbsvcs/Time_Utilities.h"
-#include "orbsvcs/Event_Service_Constants.h"
-
-#include "Kokyu_EC.h"
-#include "Consumer.h"
-#include "Supplier.h"
-
-#include <dsui_types.h>
-#include "federated_dsui_families.h"
-
-namespace
-{
- int config_run = 0;
- ACE_CString sched_type ="rms";
- FILE * ior_output_file;
-}
-
-inline RtecScheduler::Period_t time_val_to_period (const ACE_Time_Value &tv)
-{
- //100s of nanoseconds
- return (tv.sec () * 1000000 + tv.usec ())*10;
-}
-
-int parse_args (int argc, char *argv[]);
-
-int
-main (int argc, char* argv[])
-{
- //TAO_EC_Default_Factory::init_svcs ();
- ds_control ctrl ("Federated_Test_Kokyu","federated_enabled.dsui");
-
- TAO_EC_Kokyu_Factory::init_svcs ();
-
-
- ACE_DECLARE_NEW_CORBA_ENV;
- ACE_TRY
- {
- // ORB initialization boiler plate...
- CORBA::ORB_var orb =
- CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- if (parse_args (argc, argv) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- "Usage: Service [-o IOR_file_name]\n"));
- return 1;
- }
-
- CORBA::Object_var object =
- orb->resolve_initial_references ("RootPOA" ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
- PortableServer::POA_var poa =
- PortableServer::POA::_narrow (object.in () ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
- PortableServer::POAManager_var poa_manager =
- poa->the_POAManager (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
- poa_manager->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- // ****************************************************************
-
- Kokyu_EC kokyu_ec;
- if (kokyu_ec.init(sched_type.c_str(), poa.in()) == -1)
- ACE_ERROR_RETURN((LM_ERROR, "Unable to initialize Kokyu_EC"), 1);
-
- // ****************************************************************
- RtecEventComm::EventSourceID supplier_id1 = 1, supplier_id2 = 2;
- RtecEventChannelAdmin::ProxyPushConsumer_var consumer_proxy1, consumer_proxy2;
- Supplier supplier_impl1(supplier_id1);
- Supplier supplier_impl2(supplier_id2);
- RtecEventComm::PushSupplier_var supplier1, supplier2;
-
- supplier1 = supplier_impl1._this(ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
- supplier2 = supplier_impl2._this(ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- RtecScheduler::handle_t supplier1_rt_info =
- kokyu_ec.register_supplier("supplier1",
- supplier_id1,
- ACE_ES_EVENT_UNDEFINED,
- supplier1,
- consumer_proxy1
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- RtecScheduler::handle_t supplier2_rt_info =
- kokyu_ec.register_supplier("supplier2",
- supplier_id2,
- ACE_ES_EVENT_UNDEFINED+1,
- supplier2,
- consumer_proxy2
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- supplier_impl1.set_consumer_proxy(consumer_proxy1.in());
- supplier_impl2.set_consumer_proxy(consumer_proxy2.in());
-
- ACE_DEBUG ((LM_DEBUG, "suppliers connected\n"));
-
- // *************************************************************
- // Create a consumer, intialize its RT_Info structures, and
- // connnect to the event channel....
-
- Consumer consumer_impl1, consumer_impl2;
- RtecEventChannelAdmin::ProxyPushSupplier_var proxy_supplier1,
- proxy_supplier2;
-
- //consumer's rate will get propagated from the supplier.
- //so no need to specify a period here. Specifying
- //criticality is crucial since it propagates from
- //consumer to supplier.
- ACE_Time_Value tv (0,0);
- TimeBase::TimeT tmp;
- ORBSVCS_Time::Time_Value_to_TimeT (tmp, tv);
-
- RtEventChannelAdmin::SchedInfo info;
- info.criticality = RtecScheduler::VERY_LOW_CRITICALITY;
- info.period = time_val_to_period (tv);
- info.importance = RtecScheduler::VERY_LOW_IMPORTANCE;
- info.threads = 0;
- info.info_type = RtecScheduler::OPERATION;
-
- RtecEventComm::PushConsumer_var consumer1 =
- consumer_impl1._this (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
-
- RtecScheduler::handle_t consumer1_rt_info =
- kokyu_ec.register_consumer("consumer1",
- info,
- ACE_ES_EVENT_UNDEFINED,
- consumer1.in(),
- proxy_supplier1.out()
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- info.criticality = RtecScheduler::VERY_HIGH_CRITICALITY;
- info.importance = RtecScheduler::VERY_HIGH_IMPORTANCE;
-
- RtecEventComm::PushConsumer_var consumer2 =
- consumer_impl2._this (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- RtecScheduler::handle_t consumer2_rt_info =
- kokyu_ec.register_consumer("consumer2",
- info,
- ACE_ES_EVENT_UNDEFINED + 1,
- consumer2.in(),
- proxy_supplier2.out()
- ACE_ENV_ARG_PARAMETER);
-
-
-
-
- // ****************************************************************
-
- //Timer Registration part
-
- //Timeout consumers for the two suppliers.
- Timeout_Consumer timeout_consumer_impl1(&supplier_impl1);
- Timeout_Consumer timeout_consumer_impl2(&supplier_impl2);
-
- RtecEventChannelAdmin::ProxyPushSupplier_var timeout_supplier_proxy1,
- timeout_supplier_proxy2;
- RtecEventComm::PushConsumer_var safe_timeout_consumer1,
- safe_timeout_consumer2;
-
- safe_timeout_consumer1= timeout_consumer_impl1._this(ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
- safe_timeout_consumer2= timeout_consumer_impl2._this(ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- //Period = 1sec
- tv.set (1,0);
- ORBSVCS_Time::Time_Value_to_TimeT (tmp, tv);
-
- info.criticality = RtecScheduler::VERY_LOW_CRITICALITY;
- info.period = time_val_to_period (tv);
- info.importance = RtecScheduler::VERY_LOW_IMPORTANCE;
- info.threads = 0;
- info.info_type = RtecScheduler::OPERATION;
-
- RtecScheduler::handle_t supplier1_timeout_consumer_rt_info =
- kokyu_ec.register_consumer("supplier1_timeout_consumer",
- info,
- ACE_ES_EVENT_INTERVAL_TIMEOUT,
- safe_timeout_consumer1.in(),
- timeout_supplier_proxy1.out()
- ACE_ENV_ARG_PARAMETER);
-
-
- tv.set (3, 0);
- ORBSVCS_Time::Time_Value_to_TimeT (tmp, tv);
- info.criticality = RtecScheduler::VERY_HIGH_CRITICALITY;
- info.period = time_val_to_period (tv);
- info.importance = RtecScheduler::VERY_HIGH_IMPORTANCE;
-
- RtecScheduler::handle_t supplier2_timeout_consumer_rt_info =
- kokyu_ec.register_consumer("supplier2_timeout_consumer",
- info,
- ACE_ES_EVENT_INTERVAL_TIMEOUT,
- safe_timeout_consumer2.in(),
- timeout_supplier_proxy2.out()
- ACE_ENV_ARG_PARAMETER);
-
- ACE_DEBUG ((LM_DEBUG, "timeout consumers connected\n"));
-
- // ****************************************************************
- //Registering dependency between timeout consumers and our suppliers
- //with the scheduler
-
- kokyu_ec.add_dependency (supplier1_timeout_consumer_rt_info,
- supplier1_rt_info,
- 1,
- RtecBase::TWO_WAY_CALL
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- kokyu_ec.add_dependency (supplier2_timeout_consumer_rt_info,
- supplier2_rt_info,
- 1,
- RtecBase::TWO_WAY_CALL
- ACE_ENV_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
-
- // ****************************************************************
- RtEventChannelAdmin::RtSchedEventChannel_var kokyu_ec_ior =
- kokyu_ec._this(ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
-
- CORBA::String_var ior = orb->object_to_string(kokyu_ec_ior.in()
- ACE_ENV_ARG_PARAMETER);
-
- ACE_OS::fprintf(ior_output_file, ior.in());
- ACE_OS::fclose(ior_output_file);
-
-
- // ****************************************************************
-
- // At this point the consumer and supplier are connected to the
- // EC, they have provided their QoS info to the Scheduling
- // Service and the EC has informed the Scheduler about the
- // dependencies between them.
- // We can now compute the schedule for this configuration...
-
- // The schedule is returned in this variables....
-
-
- // ****************************************************************
-
- ACE_hthread_t thr_handle;
- ACE_Thread::self (thr_handle);
-
- int prio = ACE_Sched_Params::priority_max (ACE_SCHED_FIFO);
- ACE_OS::thr_setprio (thr_handle, prio);
-
-
- orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
-
- // ****************************************************************
-
- // We should do a lot of cleanup (disconnect from the EC,
- // deactivate all the objects with the POA, etc.) but this is
- // just a simple demo so we are going to be lazy.
-
- }
- ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Kokyu_EventService - Service");
- return 1;
- }
- ACE_ENDTRY;
- return 0;
-}
-
-// ****************************************************************
-
-int parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opts (argc, argv, "cs:o:");
- int c;
-
- while ((c = get_opts ()) != -1)
- switch (c)
- {
- case 'o':
- ior_output_file = ACE_OS::fopen (get_opts.opt_arg (), "w");
- if (ior_output_file == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Unable to open %s for writing: %p\n",
- get_opts.opt_arg ()), -1);
- break;
- case 's':
- sched_type = ACE_TEXT_ALWAYS_CHAR(get_opts.opt_arg ());
- break;
-
- case '?':
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "usage: %s -s <rms|muf>"
- "\n",
- argv [0]),
- -1);
- }
- // Indicates sucessful parsing of the command line
- return 0;
-}
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Supplier_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Supplier_EC.cpp
index 9b632659230..d205866fef5 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Supplier_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/fan_test/Supplier_EC.cpp
@@ -14,7 +14,6 @@
#include "orbsvcs/Event/EC_Kokyu_Factory.h"
#include "orbsvcs/Time_Utilities.h"
#include "orbsvcs/Event_Service_Constants.h"
-#include "orbsvcs/Event/EC_Event_Limit.h"
#include "tao/ORB_Core.h"
#include "Kokyu_EC.h"
@@ -211,22 +210,16 @@ int
main (int argc, char* argv[])
{
//TAO_EC_Default_Factory::init_svcs ();
-#ifdef ACE_HAS_DSUI
- ds_control* ds_cntl = new ds_control ("Fan_Test_Supplier","supplier_enabled.dsui");
-#endif //ACE_HAS_DSUI
-
TAO_EC_Kokyu_Factory::init_svcs ();
TAO_EC_Gateway_IIOP_Factory::init_svcs ();
- //@BT
- //DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
- ACE_Time_Value now(ACE_OS::gettimeofday());
- ACE_OS::printf("Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
- DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
-
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
+#ifdef ACE_HAS_DSUI
+ ds_control ds_cntl("Fan_Test_Supplier","supplier_enabled.dsui");
+#endif //ACE_HAS_DSUI
+
// ORB initialization boiler plate...
CORBA::ORB_var orb =
CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER);
@@ -292,6 +285,7 @@ main (int argc, char* argv[])
supplier_ec.start(ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+#ifdef ACE_HAS_DSUI
//@BT: Timeouts start when orb starts, similar to starting the DT worker thread
//DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 1, 0, NULL);
ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t WORKER_ACTIVATED at %u\n",ACE_OS::gettimeofday().msec()));
@@ -300,44 +294,31 @@ main (int argc, char* argv[])
ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t WORKER_STARTED at %u\n",ACE_OS::gettimeofday().msec()));
DSTRM_EVENT (WORKER_GROUP_FAM, WORKER_STARTED, 0, 0, NULL);
-#ifdef ACE_HAS_DSUI
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb, ds_cntl);
-#else
- EC_Event_Limit* e_limit = new EC_Event_Limit (orb);
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
+ ACE_Time_Value now(ACE_OS::gettimeofday());
+ ACE_OS::printf("Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
+ DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
#endif //ACE_HAS_DSUI
- ACE_Time_Value ticker (120);
- //orb->orb_core()->reactor()->schedule_timer(e_limit,0, ticker);
- long timer_id = rt.reactor()->schedule_timer(e_limit,0,ticker);
- if (timer_id < 0)
- {
- ACE_DEBUG((LM_DEBUG,"Supplier_EC (%t) could not schedule EC_Event_Limit timer\n"));
- }
rt.activate(); //need thread creation flags? or priority?
- orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_Time_Value stop_time(300,0);
+ orb->run (stop_time ACE_ENV_ARG_PARAMETER);
+ //orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+#ifdef ACE_HAS_DSUI
+ //@BT
+ //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+ ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t STOP at %u\n",ACE_OS::gettimeofday().msec()));
+ DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+#endif //ACE_HAS_DSUI
// ****************************************************************
- //@BT: ORB shutting down; currently, this isn't expected to happen
- //DSTRM_EVENT (MAIN_GROUP_FAM, CALL_SERVER_SHUTDOWN, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t CALL_SERVER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT (MAIN_GROUP_FAM, CALL_SERVER_SHUTDOWN, 0, 0, NULL);
-
- //@BT: Scheduler shuts down with the EC and ORB
- //DSTRM_EVENT (MAIN_GROUP_FAM, SCHEDULER_SHUTDOWN, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t SCHEDULER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT (MAIN_GROUP_FAM, SCHEDULER_SHUTDOWN, 0, 0, NULL);
-
// We should do a lot of cleanup (disconnect from the EC,
// deactivate all the objects with the POA, etc.) but this is
// just a simple demo so we are going to be lazy.
- //@BT: Done clean up
- //DSTRM_EVENT (MAIN_GROUP_FAM, AFTER_SERVER_SHUTDOWN, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t AFTER_SERVER_SHUTDOWN at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT (MAIN_GROUP_FAM, AFTER_SERVER_SHUTDOWN, 0, 0, NULL);
-
}
ACE_CATCHANY
{
@@ -346,11 +327,6 @@ main (int argc, char* argv[])
}
ACE_ENDTRY;
- //@BT
- //DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
- ACE_DEBUG((LM_DEBUG,"Supplier_EC thread %t STOP at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
-
return 0;
}