本文整理汇总了C++中portableserver::POA_ptr::create_request_processing_policy方法的典型用法代码示例。如果您正苦于以下问题:C++ POA_ptr::create_request_processing_policy方法的具体用法?C++ POA_ptr::create_request_processing_policy怎么用?C++ POA_ptr::create_request_processing_policy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类portableserver::POA_ptr
的用法示例。
在下文中一共展示了POA_ptr::create_request_processing_policy方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: policies
PortableServer::POA_ptr
setup_poa (PortableServer::POA_ptr root_poa)
{
// Policies for the childPOA to be created.
CORBA::PolicyList policies (2);
policies.length (2);
// Tell the POA to use a servant manager.
policies[0] =
root_poa->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER);
// Allow implicit activation.
policies[1] =
root_poa->create_implicit_activation_policy (PortableServer::IMPLICIT_ACTIVATION);
PortableServer::POAManager_var poa_manager =
root_poa->the_POAManager ();
// Create POA as child of RootPOA with the above policies. This POA
// will use a SERVANT_ACTIVATOR because of RETAIN policy.
PortableServer::POA_var child_poa =
root_poa->create_POA ("childPOA",
poa_manager.in (),
policies);
// Creation of childPOAs is over. Destroy the Policy objects.
for (CORBA::ULong i = 0;
i < policies.length ();
++i)
{
policies[i]->destroy ();
}
return child_poa._retn ();
}
示例2: initialize_poa
//
// initialize_poa
//
void Tao_Data_Channel_Service::initialize_poa (::PortableServer::POA_ptr poa)
{
// Construct the policy list for the LoggingServerPOA.
::CORBA::PolicyList policies (6);
policies.length (6);
policies[0] = poa->create_thread_policy (PortableServer::ORB_CTRL_MODEL);
policies[1] = poa->create_servant_retention_policy (PortableServer::RETAIN);
policies[2] = poa->create_id_assignment_policy (PortableServer::SYSTEM_ID);
policies[3] = poa->create_id_uniqueness_policy (PortableServer::UNIQUE_ID);
policies[4] = poa->create_lifespan_policy (PortableServer::TRANSIENT);
policies[5] = poa->create_request_processing_policy (PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY);
// Create the child POA for the test logger factory servants.
this->poa_ =
poa->create_POA ("DataChannelPOA",
::PortableServer::POAManager::_nil (),
policies);
for (size_t i = 0; i < 6; ++ i)
policies[i]->destroy ();
// Activate this POA's manager.
PortableServer::POAManager_var the_mgr = this->poa_->the_POAManager ();
the_mgr->activate ();
}
示例3: policies
CORBA::Boolean
ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent,
const char *name)
{
ACE_ASSERT (! CORBA::is_nil(parent));
ACE_ASSERT (name != 0);
CORBA::PolicyList policies (3);
const char *exception_message = "Null Message";
policies.length (3);
try
{
// Servant Retention Policy
exception_message = "While PortableServer::POA::create_servant_retention_policy";
policies[0] =
parent->create_servant_retention_policy (PortableServer::NON_RETAIN);
// Request Processing Policy
exception_message = "While PortableServer::POA::create_request_processing_policy";
policies[1] =
parent->create_request_processing_policy (PortableServer::USE_DEFAULT_SERVANT);
policies[2] =
parent->create_id_uniqueness_policy (PortableServer::MULTIPLE_ID);
PortableServer::POAManager_var poa_manager =
parent->the_POAManager ();
exception_message = "While create_POA";
PortableServer::POA_var child =
parent->create_POA (name,
poa_manager.in (),
policies);
exception_message = "While policy->destroy";
for (CORBA::ULong i = 0; i < policies.length (); ++i)
{
CORBA::Policy_ptr policy = policies[i];
policy->destroy ();
}
exception_message = "While child->the_activator";
child->the_activator (this);
exception_message = "While set_servant";
child->set_servant (this->default_servant_);
}
catch (const CORBA::Exception& ex)
{
ORBSVCS_ERROR ((LM_ERROR,
"IMR_Adapter_Activator::unknown_adapter - %s\n",
exception_message));
ex._tao_print_exception ("System Exception");
return 0;
}
// Finally, now everything is fine
return 1;
}
示例4: GCServantLocator
PortableServer::POA_ptr ossie::corba::createGCPOA(PortableServer::POA_ptr parent, const std::string& name)
{
CORBA::PolicyList policy_list;
policy_list.length(2);
policy_list[0] = parent->create_servant_retention_policy(PortableServer::NON_RETAIN);
policy_list[1] = parent->create_request_processing_policy(PortableServer::USE_SERVANT_MANAGER);
PortableServer::POAManager_var poa_mgr = parent->the_POAManager();
PortableServer::POA_var poa = parent->create_POA(name.c_str(), poa_mgr, policy_list);
for (size_t ii = 0; ii < policy_list.length(); ++ii) {
policy_list[ii]->destroy();
}
GCServantLocator* manager = new GCServantLocator();
PortableServer::ServantManager_var manager_ref = manager->_this();
poa->set_servant_manager(manager_ref);
manager->_remove_ref();
return poa._retn();
}
示例5: main
//.........这里部分代码省略.........
}
}
new_argv[new_argc - 2] = "-ORB_iiop_orb_port";
new_argv[new_argc - 1] = port;
int orb_argc = port_given ? argc : new_argc;
char ** orb_argv = port_given ? argv : new_argv;
//
// ORB initialization
//
my_global_orb = CORBA::ORB_init(orb_argc, orb_argv);
// Get internal ORB
TIDorb::core::TIDORB* m_orb =
dynamic_cast<TIDorb::core::TIDORB*> (CORBA::ORB::_duplicate(my_global_orb));
//
// Getting RootPOA & Manager references
//
CORBA::Object_var poa_obj = my_global_orb->resolve_initial_references("RootPOA");
PortableServer::POA_ptr rootPOA = PortableServer::POA::_narrow(poa_obj);
PortableServer::POAManager_var manager = rootPOA->the_POAManager();
//
// NamingContexts POA creation
//
CORBA::PolicyList policies;
policies.length(4);
policies[0] = rootPOA->create_servant_retention_policy(PortableServer::RETAIN);
policies[1] = rootPOA->create_request_processing_policy(
PortableServer::USE_SERVANT_MANAGER);
policies[2] = rootPOA->create_id_assignment_policy(PortableServer::USER_ID);
policies[3] = rootPOA->create_lifespan_policy(PortableServer::PERSISTENT);
PortableServer::POA_var namingContextsPOA =
rootPOA->create_POA("namingContextsPOA", manager, policies);
PortableServer::POAManager_var namingContextsManager =
namingContextsPOA->the_POAManager();
//
// BindingIterators POA creation
//
CORBA::PolicyList bindingIterators_policies;
bindingIterators_policies.length(2);
bindingIterators_policies[0] =
rootPOA->create_thread_policy(PortableServer::SINGLE_THREAD_MODEL);
bindingIterators_policies[1] =
rootPOA->create_id_assignment_policy(PortableServer::USER_ID);
PortableServer::POA_var bindingIteratorsPOA =
namingContextsPOA->create_POA("bindingIteratorsPOA", namingContextsManager,
bindingIterators_policies);
//
// Creates and sets a new ServantManager
//
TIDNaming::ServantManagerNSImpl* servant_manager =
示例6: initialize
void
HomeServantBase::initialize
( PortableServer::POA_ptr root_poa
, Components::HomeExecutorBase_ptr home_executor
, ContainerInterfaceImpl* container
, std::string install_dir )
throw (Components::Deployment::InstallationFailure)
{
home_executor_ = Components::HomeExecutorBase::_duplicate (home_executor);
container_ = container;
container_->_add_ref();
install_dir_ = install_dir;
// Create a new POA for the components
CORBA::PolicyList policies;
policies.length (7);
policies[0] = root_poa->create_thread_policy (PortableServer::ORB_CTRL_MODEL);
policies[1] = root_poa->create_lifespan_policy (PortableServer::TRANSIENT);
policies[2] = root_poa->create_id_uniqueness_policy (PortableServer::UNIQUE_ID);
policies[3] = root_poa->create_id_assignment_policy (PortableServer::USER_ID);
policies[4] = root_poa->create_implicit_activation_policy (PortableServer::NO_IMPLICIT_ACTIVATION);
policies[5] = root_poa->create_servant_retention_policy (PortableServer::NON_RETAIN);
policies[6] = root_poa->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER);
static CORBA::ULong poa_name = 0;
char buffer[17];
sprintf (buffer, "Qedo_POA_%ld", ++poa_name);
try
{
home_poa_ = root_poa->create_POA (buffer, NULL, policies);
}
catch (PortableServer::POA::AdapterAlreadyExists&)
{
NORMAL_ERR ("HomeServantBase: Fatal internal error - POA already exists???");
throw Components::Deployment::InstallationFailure();
}
catch (PortableServer::POA::InvalidPolicy&)
{
NORMAL_ERR ("HomeServantBase: Fatal internal error - Invalid policy during POA creation: ORB not CORBA 2.3 compliant???");
throw Components::Deployment::InstallationFailure();
}
// Set servant locator
try
{
home_poa_->set_servant_manager (servant_locator_);
}
catch (PortableServer::POA::WrongPolicy&)
{
// Cannot be, since our POA has the right policies
NORMAL_ERR ("HomeServantBase: Fatal internal error - Setting servant manager complains about a wrong policy???");
throw Components::Deployment::InstallationFailure();
}
my_home_servant_ = dynamic_cast <PortableServer::Servant> (this);
if (! my_home_servant_)
{
NORMAL_ERR ("HomeServantBase: initialize(): Cannot dynamic_cast this pointer to PortableServer::Servant");
throw Components::Deployment::InstallationFailure();
}
// Activate the POA using the POA manager
home_poa_manager_ = home_poa_->the_POAManager();
home_poa_manager_->activate();
// Create a first object reference, which belongs to this home
CORBA::Object_var home_obj = this->create_primary_object_reference (repository_id_);
my_object_id_ = this->reference_to_oid (home_obj);
// Narrow the object reference for the home (this can involve remote _is_a() calls to the
// servant, so it must be active at this time)
my_home_ref_ = Components::CCMHome::_narrow (home_obj);
}