diff options
10 files changed, 698 insertions, 0 deletions
diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/Consumer_EC.cpp b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/Consumer_EC.cpp new file mode 100644 index 00000000000..a1913f2e83a --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/Consumer_EC.cpp @@ -0,0 +1,136 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ACEXML/parser/parser/Parser.h" +#include "ACEXML/common/InputSource.h" +#include "ACEXML/common/FileCharStream.h" +#include "ACEXML/common/DefaultHandler.h" + +#include "tao/ORB.h" + +#include "orbsvcs/Event/EC_Gateway_IIOP_Factory.h" +#include "orbsvcs/Event/EC_Kokyu_Factory.h" + +#include "Configurator_ParseHandler.h" +#include "Configurator_SyntaxHandler.h" +#include "ECDriver.h" + +struct Arguments +{ + ACE_CString filename_; +}; + +int parse_args (int argc, char *argv[],Arguments &args); + +int +main (int argc, char *argv[]) +{ + int retval; + + TAO_EC_Kokyu_Factory::init_svcs (); + TAO_EC_Gateway_IIOP_Factory::init_svcs (); + + ACEXML_TRY_NEW_ENV + { + ACEXML_Parser parser; + Arguments args; + args.filename_.set(ACE_TEXT("consumerec.xml")); + + // parse args for config filename + if (parse_args(argc,argv,args) == -1) + { + return 1; + } + + // ORB initialization boiler plate... + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + 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; + + ACEXML_FileCharStream *fcs = new ACEXML_FileCharStream(); + if ((retval = fcs->open(args.filename_.c_str())) != 0) { + //ACE_DEBUG ((LM_DEBUG, "Could not open file %s\n",args.filename_.c_str())); + return retval; + } + + ACEXML_InputSource is (fcs); //takes responsibility of fcs + + Configurator_ParseHandler xmlhandler (args.filename_.c_str()); + ACEXML_DefaultHandler dflt; + + parser.setContentHandler (&xmlhandler); + parser.setDTDHandler (&dflt); + parser.setErrorHandler (&xmlhandler); + parser.setEntityResolver (&dflt); + + parser.parse(&is); + ACEXML_TRY_CHECK; + + if ((retval = fcs->close()) != 0) { + //ACE_DEBUG ((LM_DEBUG, "Could not close file %s\n",args.filename_.c_str())); + return retval; + } + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Finished parsing\n"))); + + Configurator_SyntaxHandler cfgtor; + cfgtor.init(orb.in(),poa.in()); + cfgtor.setRootNode(xmlhandler.getRootNode()); + cfgtor.setNameTable(xmlhandler.getNameTable()); + cfgtor.parse(); + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Finished configuring\n"))); + + ECDriver *drv = cfgtor.getDriver(); + drv->run(); + + } + ACEXML_CATCH (ACEXML_SAXException, ex) + { + ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred: %s. Exiting...\n"), + ex.message())); + return 1; + } + ACEXML_ENDTRY; + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Finished successfully\n"))); + + return retval; +} + +int parse_args (int argc, char *argv[], Arguments &args) +{ + ACE_Get_Opt get_opts (argc, argv, "f:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'f': + args.filename_.set(get_opts.opt_arg()); + //ACE_DEBUG((LM_DEBUG,ACE_TEXT("Filename argument: %s\n"),args.filename_.c_str())); + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "[-f <filename>] " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/Consumer_Supplier_EC.cpp b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/Consumer_Supplier_EC.cpp new file mode 100644 index 00000000000..906e3c21f3d --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/Consumer_Supplier_EC.cpp @@ -0,0 +1,136 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ACEXML/parser/parser/Parser.h" +#include "ACEXML/common/InputSource.h" +#include "ACEXML/common/FileCharStream.h" +#include "ACEXML/common/DefaultHandler.h" + +#include "tao/ORB.h" + +#include "orbsvcs/Event/EC_Gateway_IIOP_Factory.h" +#include "orbsvcs/Event/EC_Kokyu_Factory.h" + +#include "Configurator_ParseHandler.h" +#include "Configurator_SyntaxHandler.h" +#include "ECDriver.h" + +struct Arguments +{ + ACE_CString filename_; +}; + +int parse_args (int argc, char *argv[],Arguments &args); + +int +main (int argc, char *argv[]) +{ + int retval; + + TAO_EC_Kokyu_Factory::init_svcs (); + TAO_EC_Gateway_IIOP_Factory::init_svcs (); + + ACEXML_TRY_NEW_ENV + { + ACEXML_Parser parser; + Arguments args; + args.filename_.set(ACE_TEXT("conssuppec.xml")); + + // parse args for config filename + if (parse_args(argc,argv,args) == -1) + { + return 1; + } + + // ORB initialization boiler plate... + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + 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; + + ACEXML_FileCharStream *fcs = new ACEXML_FileCharStream(); + if ((retval = fcs->open(args.filename_.c_str())) != 0) { + //ACE_DEBUG ((LM_DEBUG, "Could not open file %s\n",args.filename_.c_str())); + return retval; + } + + ACEXML_InputSource is (fcs); //takes responsibility of fcs + + Configurator_ParseHandler xmlhandler (args.filename_.c_str()); + ACEXML_DefaultHandler dflt; + + parser.setContentHandler (&xmlhandler); + parser.setDTDHandler (&dflt); + parser.setErrorHandler (&xmlhandler); + parser.setEntityResolver (&dflt); + + parser.parse(&is); + ACEXML_TRY_CHECK; + + if ((retval = fcs->close()) != 0) { + //ACE_DEBUG ((LM_DEBUG, "Could not close file %s\n",args.filename_.c_str())); + return retval; + } + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Finished parsing\n"))); + + Configurator_SyntaxHandler cfgtor; + cfgtor.init(orb.in(),poa.in()); + cfgtor.setRootNode(xmlhandler.getRootNode()); + cfgtor.setNameTable(xmlhandler.getNameTable()); + cfgtor.parse(); + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Finished configuring\n"))); + + ECDriver *drv = cfgtor.getDriver(); + drv->run(); + + } + ACEXML_CATCH (ACEXML_SAXException, ex) + { + ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred: %s. Exiting...\n"), + ex.message())); + return 1; + } + ACEXML_ENDTRY; + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Finished successfully\n"))); + + return retval; +} + +int parse_args (int argc, char *argv[], Arguments &args) +{ + ACE_Get_Opt get_opts (argc, argv, "f:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'f': + args.filename_.set(get_opts.opt_arg()); + //ACE_DEBUG((LM_DEBUG,ACE_TEXT("Filename argument: %s\n"),args.filename_.c_str())); + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "[-f <filename>] " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/Supplier_EC.cpp b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/Supplier_EC.cpp new file mode 100644 index 00000000000..62b507e4339 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/Supplier_EC.cpp @@ -0,0 +1,136 @@ +// $Id$ + +#include "ace/Get_Opt.h" +#include "ACEXML/parser/parser/Parser.h" +#include "ACEXML/common/InputSource.h" +#include "ACEXML/common/FileCharStream.h" +#include "ACEXML/common/DefaultHandler.h" + +#include "tao/ORB.h" + +#include "orbsvcs/Event/EC_Gateway_IIOP_Factory.h" +#include "orbsvcs/Event/EC_Kokyu_Factory.h" + +#include "Configurator_ParseHandler.h" +#include "Configurator_SyntaxHandler.h" +#include "ECDriver.h" + +struct Arguments +{ + ACE_CString filename_; +}; + +int parse_args (int argc, char *argv[],Arguments &args); + +int +main (int argc, char *argv[]) +{ + int retval; + + TAO_EC_Kokyu_Factory::init_svcs (); + TAO_EC_Gateway_IIOP_Factory::init_svcs (); + + ACEXML_TRY_NEW_ENV + { + ACEXML_Parser parser; + Arguments args; + args.filename_.set(ACE_TEXT("supplierec.xml")); + + // parse args for config filename + if (parse_args(argc,argv,args) == -1) + { + return 1; + } + + // ORB initialization boiler plate... + CORBA::ORB_var orb = + CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + 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; + + ACEXML_FileCharStream *fcs = new ACEXML_FileCharStream(); + if ((retval = fcs->open(args.filename_.c_str())) != 0) { + //ACE_DEBUG ((LM_DEBUG, "Could not open file %s\n",args.filename_.c_str())); + return retval; + } + + ACEXML_InputSource is (fcs); //takes responsibility of fcs + + Configurator_ParseHandler xmlhandler (args.filename_.c_str()); + ACEXML_DefaultHandler dflt; + + parser.setContentHandler (&xmlhandler); + parser.setDTDHandler (&dflt); + parser.setErrorHandler (&xmlhandler); + parser.setEntityResolver (&dflt); + + parser.parse(&is); + ACEXML_TRY_CHECK; + + if ((retval = fcs->close()) != 0) { + //ACE_DEBUG ((LM_DEBUG, "Could not close file %s\n",args.filename_.c_str())); + return retval; + } + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Finished parsing\n"))); + + Configurator_SyntaxHandler cfgtor; + cfgtor.init(orb.in(),poa.in()); + cfgtor.setRootNode(xmlhandler.getRootNode()); + cfgtor.setNameTable(xmlhandler.getNameTable()); + cfgtor.parse(); + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Finished configuring\n"))); + + ECDriver *drv = cfgtor.getDriver(); + drv->run(); + + } + ACEXML_CATCH (ACEXML_SAXException, ex) + { + ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred: %s. Exiting...\n"), + ex.message())); + return 1; + } + ACEXML_ENDTRY; + + ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Finished successfully\n"))); + + return retval; +} + +int parse_args (int argc, char *argv[], Arguments &args) +{ + ACE_Get_Opt get_opts (argc, argv, "f:"); + int c; + + while ((c = get_opts ()) != -1) + switch (c) + { + case 'f': + args.filename_.set(get_opts.opt_arg()); + //ACE_DEBUG((LM_DEBUG,ACE_TEXT("Filename argument: %s\n"),args.filename_.c_str())); + break; + case '?': + default: + ACE_ERROR_RETURN ((LM_ERROR, + "usage: %s " + "[-f <filename>] " + "\n", + argv [0]), + -1); + } + // Indicates sucessful parsing of the command line + return 0; +} diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/chain_test.mpc b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/chain_test.mpc new file mode 100644 index 00000000000..92e3f28cec5 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/chain_test.mpc @@ -0,0 +1,35 @@ +project(Consumer_Chain): orbsvcsexe, rtevent, rtsched, rtschedevent, rtkokyuevent, kokyu { + exename = Consumer_EC + idlflags += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h + includes += $(TAO_ROOT)/orbsvcs $(TAO_ROOT)/orbsvcs/orbsvcs .. + libs += ConfigurableEC + libpaths += .. + + Source_Files { + Consumer_EC.cpp + } +} + +project(Consumer_Supplier_Chain): orbsvcsexe, rtevent, rtsched, rtschedevent, rtkokyuevent, kokyu { + exename = Consumer_Supplier_EC + idlflags += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h + includes += $(TAO_ROOT)/orbsvcs $(TAO_ROOT)/orbsvcs/orbsvcs .. + libs += ConfigurableEC + libpaths += .. + + Source_Files { + Consumer_Supplier_EC.cpp + } +} + +project(Supplier_Chain): orbsvcsexe, rtevent, rtsched, rtschedevent, rtkokyuevent, kokyu { + exename = Supplier_EC + idlflags += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs -Ge 1 -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h + includes += $(TAO_ROOT)/orbsvcs $(TAO_ROOT)/orbsvcs/orbsvcs .. + libs += ConfigurableEC + libpaths += .. + + Source_Files { + Supplier_EC.cpp + } +} diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/conssuppec.xml b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/conssuppec.xml new file mode 100644 index 00000000000..21e7563fcb6 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/conssuppec.xml @@ -0,0 +1,57 @@ +<?xml version="1.0"?> +<!DOCTYPE ECConfiguration SYSTEM "ecconfig.dtd"> + +<ECConfiguration> + +<!-- Define the events --> +<Event name="Subtask2 Trigger" type="17"> + <Period>200</Period> <!-- in msec --> + <Phase>0</Phase> <!-- in msec --> + <Criticality value="VERY_LOW" /> + <Importance value="VERY_LOW" /> + <WorstExecution>50</WorstExecution> <!-- in msec --> + <TypicalExecution>50</TypicalExecution> <!-- in msec --> +</Event> + +<Event name="Subtask3 Trigger" type="18"> + <Period>200</Period> <!-- in msec --> + <Phase>0</Phase> <!-- in msec --> + <Criticality value="VERY_HIGH" /> + <Importance value="VERY_HIGH" /> + <WorstExecution>50</WorstExecution> <!-- in msec --> + <TypicalExecution>50</TypicalExecution> <!-- in msec --> +</Event> + +<!-- Configure the ECs --> +<RemoteEventChannel name="Client" > + <IORFile>client.ior</IORFile> +</RemoteEventChannel> + +<LocalEventChannel name="Middle" > + <SchedulingStrategy type="EDF" enableRG="true" /> + <Supplier name="Subtask3 Notifier" id="3"> + <Publications> + <EventName>Subtask3 Trigger</EventName> + </Publications> + </Supplier> + <Consumer name="Subtask2 Executor" > + <Subscriptions> + <EventName>Subtask2 Trigger</EventName> + </Subscriptions> + <Dependants> + <SupplierName>Substack3 Notifier</SupplierName> + </Dependants> + </Consumer> +</LocalEventChannel> + +<!-- Configure the driver --> +<TestDriver> + <StartCondition type="DelayAfterConnect" > + <Time>30000</Time> <!-- in msecs --> + </StartCondition> + <StopCondition type="Duration" > + <Value>340000</Value> <!-- duration in msecs --> + </StopCondition> +</TestDriver> + +</ECConfiguration>
\ No newline at end of file diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/consumerec.xml b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/consumerec.xml new file mode 100644 index 00000000000..fae6c9161e5 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/consumerec.xml @@ -0,0 +1,36 @@ +<?xml version="1.0"?> +<!DOCTYPE ECConfiguration SYSTEM "ecconfig.dtd"> + +<ECConfiguration> + +<Event name="Subtask3 Trigger" type="18"> + <Period>200</Period> <!-- in msec --> + <Phase>0</Phase> <!-- in msec --> + <Criticality value="VERY_HIGH" /> + <Importance value="VERY_HIGH" /> + <WorstExecution>50</WorstExecution> <!-- in msec --> + <TypicalExecution>50</TypicalExecution> <!-- in msec --> +</Event> + +<!-- Configure the ECs --> +<LocalEventChannel name="Client" > + <SchedulingStrategy type="EDF" enableRG="true" /> + <Consumer name="Subtask3 Executor" > + <Subscriptions> + <EventName>Subtask3 Trigger</EventName> + </Subscriptions> + </Consumer> +</LocalEventChannel> + +<!-- Configure the driver --> +<!-- there should only be one Driver --> +<TestDriver> + <StartCondition type="DelayAfterConnect"> + <Time>30000</Time> <!-- in msecs --> + </StartCondition> + <StopCondition type="Duration" > + <Value>340000</Value> <!-- duration in msecs --> + </StopCondition> +</TestDriver> + +</ECConfiguration>
\ No newline at end of file diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/ecconfig.dtd b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/ecconfig.dtd new file mode 100644 index 00000000000..172b9187419 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/ecconfig.dtd @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!-- ECCONFIGURATION --> + <!ELEMENT ECConfiguration ((Event|Timeout)*,(LocalEventChannel|RemoteEventChannel)*,TestDriver) > + +<!-- EVENT --> + <!ELEMENT Event (Period,Phase,Criticality,Importance,WorstExecution,TypicalExecution) > + <!ATTLIST Event name CDATA #REQUIRED > + <!ATTLIST Event type CDATA #REQUIRED > + + <!ELEMENT Criticality (EMPTY) > + <!ATTLIST Criticality value (VERY_LOW|LOW|MEDIUM|HIGH|VERY_HIGH) #REQUIRED > + + <!ELEMENT Importance (EMPTY) > + <!ATTLIST Importance value (VERY_LOW|LOW|MEDIUM|HIGH|VERY_HIGH) #REQUIRED > + + <!ELEMENT WorstExecution (#PCDATA) > + + <!ELEMENT TypicalExecution (#PCDATA) > + +<!-- TIMEOUT --> + <!ELEMENT Timeout (Period,Phase?) > + <!ATTLIST Timeout name CDATA #REQUIRED > + + <!ELEMENT Period (#PCDATA) > + + <!ELEMENT Phase (#PCDATA) > + +<!-- LOCALEVENTCHANNEL --> + <!ELEMENT LocalEventChannel (SchedulingStrategy,(Consumer,Supplier)*) > + <!ATTLIST LocalEventChannel name CDATA #REQUIRED > + + <!ELEMENT SchedulingStrategy (EMPTY) > + <!ATTLIST SchedulingStrategy type (EDF|MUF|RMS) #REQUIRED > + <!ATTLIST SchedulingStrategy enableRG (yes|no) #REQUIRED > + + <!ELEMENT Consumer (Subscriptions,Dependants?) > + <!ATTLIST Consumer name CDATA #REQUIRED > + + <!ELEMENT Subscriptions (EventName*) > + + <!ELEMENT EventName (#PCDATA) > + + <!ELEMENT Dependants (SupplierName*) > + + <!ELEMENT SupplierName (#PCDATA) > + + <!-- If no Triggers is supplied (or it is empty), the Supplier is assumed to be self-triggered --> + <!ELEMENT Supplier (Publications,Triggers?) > + <!ATTLIST Supplier name CDATA #REQUIRED > + <!ATTLIST Supplier id CDATA #REQUIRED > + + <!ELEMENT Publications (EventName*) > + + <!ELEMENT Triggers (TimeoutName*) > + + <!ELEMENT TimeoutName (#PCDATA) > + +<!-- REMOTEEVENTCHANNEL --> + <!-- Consumer/Supplier on remote are local but subscribe/publish remotely --> + <!ELEMENT RemoteEventChannel (IORFile, (Consumer,Supplier)*) > + <!ATTLIST RemoteEventChannel name CDATA #REQUIRED > + + <!ELEMENT IORFile (#PCDATA) > + +<!-- There should only be one Driver for each process--> +<!-- TESTDRIVER --> + <!ELEMENT TestDriver (StartCondition,StopCondition) > + + <!ELEMENT StartCondition (Time) > + <!ATTLIST StartCondition type (GlobalTime|DelayAfterStart|DelayAfterConnect) #REQUIRED > + <!ATTLIST StartCondition master (yes|no) "no" > + + <!ELEMENT Time (#PCDATA) > + + <!ELEMENT StopCondition (Value) > + <!ATTLIST StopCondition type (Duration|EventNumber) #REQUIRED > + + <!ELEMENT Value (#PCDATA) > diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/supplierec.xml b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/supplierec.xml new file mode 100644 index 00000000000..c172db96541 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/supplierec.xml @@ -0,0 +1,71 @@ +<?xml version="1.0"?> +<!DOCTYPE ECConfiguration SYSTEM "ecconfig.dtd"> + +<ECConfiguration> + +<!-- Define the events --> +<!-- THESE NEED TO BE THE SAME AS DEFINED IN THE CLIENT XML! --> +<Timeout name="Subtask1 Timeout" > + <Period>200</Period> <!-- in msec --> + <Phase>0</Phase> <!-- in msec --> +</Timeout> + +<Event name="Subtask1 Trigger" type="16"> + <Period>200</Period> <!-- in msec --> + <Phase>0</Phase> <!-- in msec --> + <Criticality value="VERY_LOW" /> + <Importance value="VERY_LOW" /> + <WorstExecution>50</WorstExecution> <!-- in msec --> + <TypicalExecution>50</TypicalExecution> <!-- in msec --> +</Event> + +<Event name="Subtask2 Trigger" type="17"> + <Period>200</Period> <!-- in msec --> + <Phase>0</Phase> <!-- in msec --> + <Criticality value="VERY_LOW" /> + <Importance value="VERY_LOW" /> + <WorstExecution>50</WorstExecution> <!-- in msec --> + <TypicalExecution>50</TypicalExecution> <!-- in msec --> +</Event> + +<!-- Configure the ECs --> +<RemoteEventChannel name="Middle" > + <IORFile>middle.ior</IORFile> +</RemoteEventChannel> + +<LocalEventChannel name="Server" > + <SchedulingStrategy type="EDF" enableRG="true" /> + <Supplier name="Subtask1 Notifier" id="1"> + <Publications> + <EventName>Subtask1 Trigger</EventName> + </Publications> + <Triggers> + <TimeoutName>Subtask1 Timeout</TimeoutName> + </Triggers> + </Supplier> + <Supplier name="Subtask2 Notifier" id="2"> + <Publications> + <EventName>Subtask2 Trigger</EventName> + </Publications> + </Supplier> + <Consumer name="Subtask1 Executor" > + <Subscriptions> + <EventName>Subtask1 Trigger</EventName> + </Subscriptions> + <Dependants> + <SupplierName>Subtask2 Notifier</SupplierName> + </Dependants> + </Consumer> +</LocalEventChannel> + +<!-- Configure the driver --> +<TestDriver> + <StartCondition type="DelayAfterConnect" master="yes" > + <Time>30000</Time> <!-- in msecs --> + </StartCondition> + <StopCondition type="Duration" > + <Value>340000</Value> <!-- duration in msecs --> + </StopCondition> +</TestDriver> + +</ECConfiguration>
\ No newline at end of file diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/svc.conf b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/svc.conf new file mode 100644 index 00000000000..5e29db8c817 --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/svc.conf @@ -0,0 +1,3 @@ +# $Id$ +#change SCHED_OTHER to SCHED_FIFO or SCHED_RR to run in Real time class +static EC_Factory "-ECProxyPushConsumerCollection mt:immediate:list -ECProxyPushSupplierCollection mt:immediate:list -ECdispatching kokyu SCHED_OTHER -ECscheduling kokyu -ECfiltering kokyu -ECproxyconsumerlock thread -ECproxysupplierlock thread -ECsupplierfiltering per-supplier -ECobserver basic" diff --git a/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/svc.conf.xml b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/svc.conf.xml new file mode 100644 index 00000000000..30049fd60cc --- /dev/null +++ b/TAO/orbsvcs/examples/RtEC/ECConfigurator/chain_test/svc.conf.xml @@ -0,0 +1,9 @@ +<?xml version='1.0'?> +<!-- Converted from svc.conf by svcconf-convert.pl --> +<ACE_Svc_Conf> + <!-- $Id$ + --> + <!-- change SCHED_OTHER to SCHED_FIFO or SCHED_RR to run in Real time class + --> + <static id="EC_Factory" params="-ECProxyPushConsumerCollection mt:immediate:list -ECProxyPushSupplierCollection mt:immediate:list -ECdispatching kokyu SCHED_OTHER -ECscheduling kokyu -ECfiltering kokyu -ECproxyconsumerlock thread -ECproxysupplierlock thread -ECsupplierfiltering per-supplier -ECobserver basic"/> +</ACE_Svc_Conf> |