#include <EC_Kokyu_Factory.h>
Inheritance diagram for TAO_EC_Kokyu_Factory:


Public Member Functions | |
| TAO_EC_Kokyu_Factory (void) | |
| Constructor. | |
| virtual | ~TAO_EC_Kokyu_Factory (void) |
| destructor... | |
| virtual int | init (int argc, ACE_TCHAR *argv[]) |
| virtual int | fini (void) |
| virtual TAO_EC_Dispatching * | create_dispatching (TAO_EC_Event_Channel_Base *) |
| Create and destroy the dispatching module. | |
| virtual TAO_EC_Filter_Builder * | create_filter_builder (TAO_EC_Event_Channel_Base *) |
| Create and destroy the filter builder. | |
| virtual TAO_EC_Timeout_Generator * | create_timeout_generator (TAO_EC_Event_Channel_Base *) |
| Create and destroy the timer module. | |
| virtual TAO_EC_Scheduling_Strategy * | create_scheduling_strategy (TAO_EC_Event_Channel_Base *) |
| Create and destroy the observer strategy. | |
Static Public Member Functions | |
| int | init_svcs (void) |
Private Attributes | |
| int | disp_sched_policy_ |
| int | disp_sched_scope_ |
Definition at line 36 of file EC_Kokyu_Factory.h.
|
|
Constructor.
Definition at line 8 of file EC_Kokyu_Factory.i. References ACE_SCHED_FIFO, and ACE_SCOPE_THREAD.
00009 : TAO_EC_Default_Factory (), 00010 disp_sched_policy_ (ACE_SCHED_FIFO), 00011 disp_sched_scope_ (ACE_SCOPE_THREAD) 00012 { 00013 } |
|
|
destructor...
Definition at line 24 of file EC_Kokyu_Factory.cpp.
00025 {
00026 }
|
|
|
Create and destroy the dispatching module.
Reimplemented from TAO_EC_Default_Factory. Definition at line 218 of file EC_Kokyu_Factory.cpp. References TAO_EC_Default_Factory::create_dispatching().
00219 {
00220 if (this->dispatching_ == 2)
00221 return new TAO_EC_Kokyu_Dispatching (ec,
00222 this->disp_sched_policy_,
00223 this->disp_sched_scope_);
00224 return this->TAO_EC_Default_Factory::create_dispatching (ec);
00225 }
|
|
|
Create and destroy the filter builder.
Reimplemented from TAO_EC_Default_Factory. Definition at line 228 of file EC_Kokyu_Factory.cpp. References TAO_EC_Default_Factory::create_filter_builder().
00229 {
00230 if (this->filtering_ == 3)
00231 return new TAO_EC_Kokyu_Filter_Builder (ec);
00232
00233 return this->TAO_EC_Default_Factory::create_filter_builder (ec);
00234 }
|
|
|
Create and destroy the observer strategy.
Reimplemented from TAO_EC_Default_Factory. Definition at line 250 of file EC_Kokyu_Factory.cpp. References TAO_EC_Default_Factory::create_scheduling_strategy(), and TAO_EC_Event_Channel_Base::scheduler().
00251 {
00252 if (this->scheduling_ == 2)
00253 {
00254 CORBA::Object_var tmp = ec->scheduler ();
00255 RtecScheduler::Scheduler_var scheduler =
00256 RtecScheduler::Scheduler::_narrow (tmp.in ());
00257 return new TAO_EC_Kokyu_Scheduling (scheduler.in ());
00258 }
00259 return this->TAO_EC_Default_Factory::create_scheduling_strategy (ec);
00260 }
|
|
|
Create and destroy the timer module.
Reimplemented from TAO_EC_Default_Factory. Definition at line 238 of file EC_Kokyu_Factory.cpp. References TAO_EC_Default_Factory::create_timeout_generator().
00239 {
00240 #if 0
00241 if (this->timeout_ == 1)
00242 {
00243 //Kokyu timeout generator?
00244 }
00245 #endif
00246 return this->TAO_EC_Default_Factory::create_timeout_generator (ec);
00247 }
|
|
|
Reimplemented from TAO_EC_Default_Factory. Definition at line 210 of file EC_Kokyu_Factory.cpp.
00211 {
00212 return 0;
00213 }
|
|
||||||||||||
|
Reimplemented from TAO_EC_Default_Factory. Definition at line 36 of file EC_Kokyu_Factory.cpp. References ACE_Arg_Shifter, ACE_ERROR, ACE_SCHED_FIFO, ACE_SCHED_OTHER, ACE_SCHED_RR, ACE_SCOPE_PROCESS, ACE_SCOPE_THREAD, ACE_TCHAR, ACE_TEXT, TAO_EC_Default_Factory::init(), LM_ERROR, and ACE_OS::strcasecmp().
00037 {
00038 ACE_Arg_Shifter arg_shifter (argc, argv);
00039
00040 while (arg_shifter.is_anything_left ())
00041 {
00042 const ACE_TCHAR* arg = arg_shifter.get_current ();
00043
00044 if (ACE_OS::strcasecmp (arg, ACE_TEXT("-ECDispatching")) == 0)
00045 {
00046 arg_shifter.consume_arg ();
00047
00048 if (arg_shifter.is_parameter_next ())
00049 {
00050 const ACE_TCHAR* opt = arg_shifter.get_current ();
00051 if (ACE_OS::strcasecmp (opt, ACE_TEXT("reactive")) == 0)
00052 {
00053 this->dispatching_ = 0;
00054 }
00055 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("mt")) == 0)
00056 {
00057 this->dispatching_ = 1;
00058 }
00059 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("kokyu")) == 0)
00060 {
00061 this->dispatching_ = 2;
00062 }
00063 else
00064 {
00065 ACE_ERROR ((LM_ERROR,
00066 ACE_TEXT("EC_Kokyu_Factory - ")
00067 ACE_TEXT("unsupported dispatching <%s>\n"),
00068 opt));
00069 }
00070 arg_shifter.consume_arg ();
00071 }
00072 //if Kokyu dispatching - look for sched policy
00073 if (this->dispatching_ == 2)
00074 {
00075 if (arg_shifter.is_parameter_next ())
00076 {
00077 const ACE_TCHAR* opt = arg_shifter.get_current ();
00078 if (ACE_OS::strcasecmp (opt, ACE_TEXT("SCHED_FIFO")) == 0)
00079 {
00080 this->disp_sched_policy_ = ACE_SCHED_FIFO;
00081 }
00082 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("SCHED_RR")) == 0)
00083 {
00084 this->disp_sched_policy_ = ACE_SCHED_RR;
00085 }
00086 else
00087 {
00088 this->disp_sched_policy_ = ACE_SCHED_OTHER;
00089 }
00090 arg_shifter.consume_arg ();
00091
00092 if (arg_shifter.is_parameter_next ())
00093 {
00094 const ACE_TCHAR* opt = arg_shifter.get_current ();
00095 if (ACE_OS::strcasecmp (opt, ACE_TEXT("SYSTEM")) == 0)
00096 {
00097 this->disp_sched_scope_ = ACE_SCOPE_THREAD;
00098 }
00099 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("PROCESS")) == 0)
00100 {
00101 this->disp_sched_scope_ = ACE_SCOPE_PROCESS;
00102 }
00103 arg_shifter.consume_arg ();
00104 }
00105 }
00106 }
00107 }
00108
00109 else if (ACE_OS::strcasecmp (arg, ACE_TEXT("-ECFiltering")) == 0)
00110 {
00111 arg_shifter.consume_arg ();
00112
00113 if (arg_shifter.is_parameter_next ())
00114 {
00115 const ACE_TCHAR* opt = arg_shifter.get_current ();
00116 if (ACE_OS::strcasecmp (opt, ACE_TEXT("null")) == 0)
00117 {
00118 this->filtering_ = 0;
00119 }
00120 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("basic")) == 0)
00121 {
00122 this->filtering_ = 1;
00123 }
00124 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("prefix")) == 0)
00125 {
00126 this->filtering_ = 2;
00127 }
00128 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("kokyu")) == 0)
00129 {
00130 this->filtering_ = 3;
00131 }
00132 else
00133 {
00134 ACE_ERROR ((LM_ERROR,
00135 ACE_TEXT("EC_Kokyu_Factory - ")
00136 ACE_TEXT("unsupported filtering <%s>\n"),
00137 opt));
00138 }
00139 arg_shifter.consume_arg ();
00140 }
00141 }
00142
00143 else if (ACE_OS::strcasecmp (arg, ACE_TEXT("-ECTimeout")) == 0)
00144 {
00145 arg_shifter.consume_arg ();
00146
00147 if (arg_shifter.is_parameter_next ())
00148 {
00149 const ACE_TCHAR* opt = arg_shifter.get_current ();
00150 if (ACE_OS::strcasecmp (opt, ACE_TEXT("reactive")) == 0)
00151 {
00152 this->timeout_ = 0;
00153 }
00154 #if 0
00155 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("kokyu")) == 0)
00156 {
00157 this->timeout_ = 1;
00158 }
00159 #endif /* 0 */
00160 else
00161 {
00162 ACE_ERROR ((LM_ERROR,
00163 ACE_TEXT("EC_Kokyu_Factory - ")
00164 ACE_TEXT("unsupported timeout <%s>\n"),
00165 opt));
00166 }
00167 arg_shifter.consume_arg ();
00168 }
00169 }
00170
00171 else if (ACE_OS::strcasecmp (arg, ACE_TEXT("-ECScheduling")) == 0)
00172 {
00173 arg_shifter.consume_arg ();
00174
00175 if (arg_shifter.is_parameter_next ())
00176 {
00177 const ACE_TCHAR* opt = arg_shifter.get_current ();
00178 if (ACE_OS::strcasecmp (opt, ACE_TEXT("null")) == 0)
00179 {
00180 this->scheduling_ = 0;
00181 }
00182 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("group")) == 0)
00183 {
00184 this->scheduling_ = 1;
00185 }
00186 else if (ACE_OS::strcasecmp (opt, ACE_TEXT("kokyu")) == 0)
00187 {
00188 this->scheduling_ = 2;
00189 }
00190 else
00191 {
00192 ACE_ERROR ((LM_ERROR,
00193 ACE_TEXT("EC_Kokyu_Factory - ")
00194 ACE_TEXT("unsupported scheduling <%s>\n"),
00195 opt));
00196 }
00197 arg_shifter.consume_arg ();
00198 }
00199 }
00200
00201 else
00202 {
00203 arg_shifter.ignore_arg ();
00204 }
00205 }
00206 return this->TAO_EC_Default_Factory::init (argc, argv);
00207 }
|
|
|
Helper function to register the Kokyu factory into the service configurator. Reimplemented from TAO_EC_Default_Factory. Definition at line 29 of file EC_Kokyu_Factory.cpp. References ACE_Service_Config::static_svcs().
00030 {
00031 return ACE_Service_Config::static_svcs ()->
00032 insert (&ace_svc_desc_TAO_EC_Kokyu_Factory);
00033 }
|
|
|
Definition at line 64 of file EC_Kokyu_Factory.h. |
|
|
Definition at line 65 of file EC_Kokyu_Factory.h. |
1.3.6