📄 ec_default_factory.cpp
字号:
this->unsupported_option_value ("-ECSupplierControl", opt);
arg_shifter.consume_arg ();
}
}
else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECConsumerControlPeriod")) == 0)
{
arg_shifter.consume_arg ();
if (arg_shifter.is_parameter_next ())
{
const ACE_TCHAR* opt = arg_shifter.get_current ();
this->consumer_control_period_ = ACE_OS::atoi (opt);
arg_shifter.consume_arg ();
}
}
else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECSupplierControlPeriod")) == 0)
{
arg_shifter.consume_arg ();
if (arg_shifter.is_parameter_next ())
{
const ACE_TCHAR* opt = arg_shifter.get_current ();
this->supplier_control_period_ = ACE_OS::atoi (opt);
arg_shifter.consume_arg ();
}
}
else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECConsumerControlTimeout")) == 0)
{
arg_shifter.consume_arg ();
if (arg_shifter.is_parameter_next ())
{
const ACE_TCHAR* opt = arg_shifter.get_current ();
unsigned long timeout = ACE_OS::strtoul(opt, 0, 10);
this->consumer_control_timeout_.usec(timeout);
arg_shifter.consume_arg ();
}
}
else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECSupplierControlTimeout")) == 0)
{
arg_shifter.consume_arg ();
if (arg_shifter.is_parameter_next ())
{
const ACE_TCHAR* opt = arg_shifter.get_current ();
unsigned long timeout = ACE_OS::strtoul(opt, 0, 10);
this->supplier_control_timeout_.usec(timeout);
arg_shifter.consume_arg ();
}
}
else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECConsumerValidateConnection")) == 0)
{
arg_shifter.consume_arg ();
if (arg_shifter.is_parameter_next ())
{
const ACE_TCHAR* opt = arg_shifter.get_current ();
this->consumer_validate_connection_ = ACE_OS::atoi (opt);
arg_shifter.consume_arg ();
}
}
else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECPushSupplierSet")) == 0)
{
ACE_ERROR ((LM_ERROR,
"EC_Default_Factory - "
"obsolete option <%s>, ignored\n", arg));
arg_shifter.consume_arg ();
}
else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECConsumerAdminLock")) == 0)
{
ACE_ERROR ((LM_ERROR,
"EC_Default_Factory - "
"obsolete option <%s>, ignored\n", arg));
arg_shifter.consume_arg ();
}
else if (ACE_OS::strcasecmp (arg, ACE_LIB_TEXT("-ECSupplierAdminLock")) == 0)
{
ACE_ERROR ((LM_ERROR,
"EC_Default_Factory - "
"obsolete option <%s>, ignored\n", arg));
arg_shifter.consume_arg ();
}
else if (ACE_OS::strncmp (arg, ACE_LIB_TEXT("-EC"), 3) == 0)
{
arg_shifter.consume_arg ();
ACE_ERROR ((LM_ERROR,
"EC_Default_Factory - "
"unknown option <%s>\n",
arg));
}
else
{
arg_shifter.consume_arg ();
ACE_DEBUG ((LM_DEBUG,
"EC_Default_Factory - "
"ignoring option <%s>\n",
arg));
}
}
return 0;
}
int
TAO_EC_Default_Factory::fini (void)
{
return 0;
}
// ****************************************************************
TAO_EC_Dispatching*
TAO_EC_Default_Factory::create_dispatching (TAO_EC_Event_Channel_Base *)
{
if (this->dispatching_ == 0)
return new TAO_EC_Reactive_Dispatching ();
else if (this->dispatching_ == 1)
return new TAO_EC_MT_Dispatching (this->dispatching_threads_,
this->dispatching_threads_flags_,
this->dispatching_threads_priority_,
this->dispatching_threads_force_active_);
return 0;
}
void
TAO_EC_Default_Factory::destroy_dispatching (TAO_EC_Dispatching *x)
{
delete x;
}
TAO_EC_Filter_Builder*
TAO_EC_Default_Factory::create_filter_builder (TAO_EC_Event_Channel_Base *ec)
{
if (this->filtering_ == 0)
return new TAO_EC_Null_Filter_Builder ();
else if (this->filtering_ == 1)
return new TAO_EC_Basic_Filter_Builder (ec);
else if (this->filtering_ == 2)
return new TAO_EC_Prefix_Filter_Builder (ec);
return 0;
}
void
TAO_EC_Default_Factory::destroy_filter_builder (TAO_EC_Filter_Builder *x)
{
delete x;
}
TAO_EC_Supplier_Filter_Builder*
TAO_EC_Default_Factory::create_supplier_filter_builder (TAO_EC_Event_Channel_Base *ec)
{
if (this->supplier_filtering_ == 0)
return new TAO_EC_Trivial_Supplier_Filter_Builder (ec);
else if (this->supplier_filtering_ == 1)
return new TAO_EC_Per_Supplier_Filter_Builder (ec);
return 0;
}
void
TAO_EC_Default_Factory::destroy_supplier_filter_builder (TAO_EC_Supplier_Filter_Builder *x)
{
delete x;
}
TAO_EC_ConsumerAdmin*
TAO_EC_Default_Factory::create_consumer_admin (TAO_EC_Event_Channel_Base *ec)
{
return new TAO_EC_ConsumerAdmin (ec);
}
void
TAO_EC_Default_Factory::destroy_consumer_admin (TAO_EC_ConsumerAdmin *x)
{
delete x;
}
TAO_EC_SupplierAdmin*
TAO_EC_Default_Factory::create_supplier_admin (TAO_EC_Event_Channel_Base *ec)
{
return new TAO_EC_SupplierAdmin (ec);
}
void
TAO_EC_Default_Factory::destroy_supplier_admin (TAO_EC_SupplierAdmin *x)
{
delete x;
}
TAO_EC_ProxyPushSupplier*
TAO_EC_Default_Factory::create_proxy_push_supplier (TAO_EC_Event_Channel_Base *ec)
{
return new TAO_EC_Default_ProxyPushSupplier (ec, consumer_validate_connection_);
}
void
TAO_EC_Default_Factory::destroy_proxy_push_supplier (TAO_EC_ProxyPushSupplier *x)
{
delete x;
}
TAO_EC_ProxyPushConsumer*
TAO_EC_Default_Factory::create_proxy_push_consumer (TAO_EC_Event_Channel_Base *ec)
{
return new TAO_EC_Default_ProxyPushConsumer (ec);
}
void
TAO_EC_Default_Factory::destroy_proxy_push_consumer (TAO_EC_ProxyPushConsumer *x)
{
delete x;
}
TAO_EC_Timeout_Generator*
TAO_EC_Default_Factory::create_timeout_generator (TAO_EC_Event_Channel_Base *)
{
if (this->timeout_ == 0)
{
int argc = 0;
char **argv = 0;
CORBA::ORB_var orb =
CORBA::ORB_init (argc, argv, this->orbid_.c_str ());
ACE_Reactor *reactor = orb->orb_core ()->reactor ();
return new TAO_EC_Reactive_Timeout_Generator (reactor);
}
#if 0
else if (this->timeout_ == 1)
{
}
#endif
return 0;
}
void
TAO_EC_Default_Factory::destroy_timeout_generator (TAO_EC_Timeout_Generator *x)
{
delete x;
}
TAO_EC_ObserverStrategy*
TAO_EC_Default_Factory::create_observer_strategy (TAO_EC_Event_Channel_Base *ec)
{
if (this->observer_ == 0)
return new TAO_EC_Null_ObserverStrategy;
else if (this->observer_ == 1)
{
// @@ The lock should also be under control of the user...
ACE_Lock* lock = 0;
ACE_NEW_RETURN (lock, ACE_Lock_Adapter<TAO_SYNCH_MUTEX>, 0);
return new TAO_EC_Basic_ObserverStrategy (ec, lock);
}
else if (this->observer_ == 2)
{
// @@ The lock should also be under control of the user...
ACE_Lock* lock = 0;
ACE_NEW_RETURN (lock, ACE_Lock_Adapter<TAO_SYNCH_MUTEX>, 0);
return new TAO_EC_Reactive_ObserverStrategy (ec, lock);
}
return 0;
}
void
TAO_EC_Default_Factory::destroy_observer_strategy (TAO_EC_ObserverStrategy *x)
{
delete x;
}
TAO_EC_Scheduling_Strategy*
TAO_EC_Default_Factory::create_scheduling_strategy (TAO_EC_Event_Channel_Base*)
{
if (this->scheduling_ == 0)
return new TAO_EC_Null_Scheduling;
else if (this->scheduling_ == 1)
return new TAO_EC_Group_Scheduling;
return 0;
}
void
TAO_EC_Default_Factory::destroy_scheduling_strategy (TAO_EC_Scheduling_Strategy* x)
{
delete x;
}
// These typedefs workaround a SunCC 4.2 bug
typedef
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>::Iterator
TAO_EC_Consumer_List_Iterator;
typedef
TAO_ESF_Proxy_RB_Tree<TAO_EC_ProxyPushConsumer>::Iterator
TAO_EC_Consumer_RB_Tree_Iterator;
typedef
TAO_ESF_Proxy_List<TAO_EC_ProxyPushSupplier>::Iterator
TAO_EC_Supplier_List_Iterator;
typedef
TAO_ESF_Proxy_RB_Tree<TAO_EC_ProxyPushSupplier>::Iterator
TAO_EC_Supplier_RB_Tree_Iterator;
TAO_EC_ProxyPushConsumer_Collection*
TAO_EC_Default_Factory::create_proxy_push_consumer_collection (TAO_EC_Event_Channel_Base *)
{
if (this->consumer_collection_ == 0x000)
return new TAO_ESF_Immediate_Changes<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_List_Iterator,
TAO_SYNCH_MUTEX> ();
else if (this->consumer_collection_ == 0x001)
return new TAO_ESF_Copy_On_Read<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_List_Iterator,
TAO_SYNCH_MUTEX> ();
else if (this->consumer_collection_ == 0x002)
return new TAO_ESF_Copy_On_Write<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_List_Iterator,
ACE_SYNCH> ();
else if (this->consumer_collection_ == 0x003)
return new TAO_ESF_Delayed_Changes<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_List_Iterator,
ACE_SYNCH> ();
else if (this->consumer_collection_ == 0x010)
return new TAO_ESF_Immediate_Changes<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_RB_Tree<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_RB_Tree_Iterator,
TAO_SYNCH_MUTEX> ();
else if (this->consumer_collection_ == 0x011)
return new TAO_ESF_Copy_On_Read<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_RB_Tree<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_RB_Tree_Iterator,
TAO_SYNCH_MUTEX> ();
else if (this->consumer_collection_ == 0x012)
return new TAO_ESF_Copy_On_Write<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_RB_Tree<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_RB_Tree_Iterator,
ACE_SYNCH> ();
else if (this->consumer_collection_ == 0x013)
return new TAO_ESF_Delayed_Changes<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_RB_Tree<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_RB_Tree_Iterator,
ACE_SYNCH> ();
else if (this->consumer_collection_ == 0x100)
return new TAO_ESF_Immediate_Changes<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_List_Iterator,
ACE_Null_Mutex> ();
else if (this->consumer_collection_ == 0x101)
return new TAO_ESF_Copy_On_Read<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_List_Iterator,
ACE_Null_Mutex> ();
else if (this->consumer_collection_ == 0x102)
return new TAO_ESF_Copy_On_Write<TAO_EC_ProxyPushConsumer,
TAO_ESF_Proxy_List<TAO_EC_ProxyPushConsumer>,
TAO_EC_Consumer_List_Iterator,
ACE_NULL_SYNCH> ();
else if (this->consumer_collection_ == 0x103)
return new TAO_ESF_Delayed_Changes<TAO_EC_ProxyPushConsumer,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -