The factory of the TAO_Endpoint_Acceptor_Filter objects. More...
#include <Endpoint_Acceptor_Filter_Factory.h>
Public Member Functions | |
virtual | ~TAO_Endpoint_Acceptor_Filter_Factory (void) |
TAO_Acceptor_Filter * | create_object (TAO_POA_Manager &poamanager) |
Create a new TAO_Endpoint_Acceptor_Filter object. |
The factory of the TAO_Endpoint_Acceptor_Filter objects.
Factory service object that creates the TAO_Endpoint_Acceptor_Filter objects.
Definition at line 38 of file Endpoint_Acceptor_Filter_Factory.h.
TAO_Endpoint_Acceptor_Filter_Factory::~TAO_Endpoint_Acceptor_Filter_Factory | ( | void | ) | [virtual] |
Definition at line 17 of file Endpoint_Acceptor_Filter_Factory.cpp.
{ }
TAO_Acceptor_Filter * TAO_Endpoint_Acceptor_Filter_Factory::create_object | ( | TAO_POA_Manager & | poamanager | ) | [virtual] |
Create a new TAO_Endpoint_Acceptor_Filter object.
Reimplemented from TAO_Acceptor_Filter_Factory.
Definition at line 22 of file Endpoint_Acceptor_Filter_Factory.cpp.
{ CORBA::PolicyList& policies = poamanager.get_policies (); EndpointPolicy::EndpointList endpoints; TAO_Acceptor_Filter* filter = 0; for (CORBA::ULong i = 0; i < policies.length(); ++i) { if (policies[i]->policy_type() == EndpointPolicy::ENDPOINT_POLICY_TYPE) { EndpointPolicy::Policy_var cur_policy = EndpointPolicy::Policy::_narrow (policies[i]); if (CORBA::is_nil (cur_policy.in ())) return 0; EndpointPolicy::EndpointList_var cur_endpoints = cur_policy->value (); CORBA::ULong cur_num_endpoints = cur_endpoints->length (); CORBA::ULong num_endpoints = endpoints.length (); endpoints.length (num_endpoints + cur_num_endpoints); for (CORBA::ULong ii = 0; ii < cur_num_endpoints; ++ii) { endpoints[num_endpoints + ii] = cur_endpoints[ii]; } } } if (endpoints.length () > 0) ACE_NEW_RETURN (filter, TAO_Endpoint_Acceptor_Filter (endpoints), 0); else // no policy was in force, just return a default filter ACE_NEW_RETURN (filter, TAO_Default_Acceptor_Filter (), 0); return filter; }