Factory for initializing <Endpoint_Selection_State> and obtaining appropriate <Invocation_Endpoint_Selector>. More...
#include <OC_Endpoint_Selector_Factory.h>


Public Member Functions | |
| TAO_OC_Endpoint_Selector_Factory (void) | |
| Constructor. | |
| virtual | ~TAO_OC_Endpoint_Selector_Factory (void) |
| Destructor. | |
| virtual int | init (int argc, ACE_TCHAR *argv[]) |
| virtual TAO_Invocation_Endpoint_Selector * | get_selector (void) |
Protected Member Functions | |
| int | register_orb_initializer (void) |
Protected Attributes | |
| TAO_Optimized_Connection_Endpoint_Selector * | oc_endpoint_selector_ |
Factory for initializing <Endpoint_Selection_State> and obtaining appropriate <Invocation_Endpoint_Selector>.
Used by Invocation classes to initialize its endpoint selection strategy and state based on the effective policies. Endpoint selection strategies are stateless objects - all the state they need is contained by Invocation in <Endpoint_Selection_State>. Thus, rather than allocating an endpoint selection strategy object for each Invocation, the factory simply returns the appropriate one from the set preallocated in the ORB_Core. One endpoint selection strategy object can be used by many invocations concurrently.
Definition at line 54 of file OC_Endpoint_Selector_Factory.h.
| TAO_OC_Endpoint_Selector_Factory::TAO_OC_Endpoint_Selector_Factory | ( | void | ) |
Constructor.
Definition at line 18 of file OC_Endpoint_Selector_Factory.cpp.
: oc_endpoint_selector_(0) { }
| TAO_OC_Endpoint_Selector_Factory::~TAO_OC_Endpoint_Selector_Factory | ( | void | ) | [virtual] |
Destructor.
Definition at line 23 of file OC_Endpoint_Selector_Factory.cpp.
{
delete this->oc_endpoint_selector_;
}
| TAO_Invocation_Endpoint_Selector * TAO_OC_Endpoint_Selector_Factory::get_selector | ( | void | ) | [virtual] |
Get an Invocation's endpoint selection strategy and initialize the endpoint selection state instance.
Implements TAO_Endpoint_Selector_Factory.
Definition at line 89 of file OC_Endpoint_Selector_Factory.cpp.
{
// Trivial endpoint selector. Just return the default selector.
return this->oc_endpoint_selector_;
}
| int TAO_OC_Endpoint_Selector_Factory::init | ( | int | argc, | |
| ACE_TCHAR * | argv[] | |||
| ) | [virtual] |
Reimplemented from ACE_Shared_Object.
Definition at line 29 of file OC_Endpoint_Selector_Factory.cpp.
{
ACE_Time_Value connect_timeout(0,0);
for (int count = 0; count < argc; count++)
{
if ((ACE_OS::strcasecmp (argv[count],
ACE_TEXT ("-connect_timeout")) == 0) &&
count < argc-1)
{
++count;
long const ms = ACE_OS::strtol(argv[count],0,10);
connect_timeout.msec (ms);
}
}
if (this->register_orb_initializer () == -1)
return -1;
ACE_NEW_RETURN (this->oc_endpoint_selector_,
TAO_Optimized_Connection_Endpoint_Selector(connect_timeout),
-1);
return 0;
}
| int TAO_OC_Endpoint_Selector_Factory::register_orb_initializer | ( | void | ) | [protected] |
Register the RTCORBA ORBInitializer.
Definition at line 55 of file OC_Endpoint_Selector_Factory.cpp.
{
// Register the ORB initializer.
try
{
PortableInterceptor::ORBInitializer_ptr temp_orb_initializer =
PortableInterceptor::ORBInitializer::_nil ();
/// Register the RTCORBA ORBInitializer.
ACE_NEW_THROW_EX (temp_orb_initializer,
TAO_Strategies_ORBInitializer,
CORBA::NO_MEMORY (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
ENOMEM),
CORBA::COMPLETED_NO));
PortableInterceptor::ORBInitializer_var orb_initializer;
orb_initializer = temp_orb_initializer;
PortableInterceptor::register_orb_initializer (orb_initializer.in ());
}
catch (const ::CORBA::Exception& ex)
{
ex._tao_print_exception (
"Unexpected exception caught while "
"initializing the Strategies library");
return -1;
}
return 0;
}
TAO_Optimized_Connection_Endpoint_Selector* TAO_OC_Endpoint_Selector_Factory::oc_endpoint_selector_ [protected] |
The possible endpoint selector strategies that can be returned by this factory
Definition at line 74 of file OC_Endpoint_Selector_Factory.h.
1.7.0