CORBA Programming Reference
Activates an individual object with a specified ObjectId
.
void activate_object_with_id (
const ObjectId & id,
Servant p_servant);
The ObjectAlreadyActive
exception is raised if the CORBA object denoted by the ObjectId
value is already active in this POA.
The ServantAlreadyActive
exception is raised if the servant is already in the Active Object Map.
Note: Other exceptions can occur if the POA uses unsupported policies.
The BAD_PARAM system exception may be raised if the POA has the SYSTEM_ID policy and it detects that the ObjectId
value was not generated by the system or for this POA. An ORB is not required to detect all such invalid ObjectId
values. However, a portable application must not invoke activate_object_with_id on a POA if the POA has the SYSTEM_ID policy with an ObjectId
value that was not previously generated by the system for that POA, or, if the POA also has the PERSISTENT policy, for a previous instantiation of the same POA.
This operation enters an association between the specified ObjectId
and the specified servant in the Active Object Map.
Note: This function is supported only for a joint client/server.
MyFooServant* afoo = new MyFooServant(poa, 27);
PortableServer::ObjectId_var oid =
PortableServer::string_to_ObjectId("myLittleFoo");
poa->activate_object_with_id(oid.in(), afoo);
Foo_var foo = afoo->_this();