Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

2 интерфейса   Найти похожие ветки 

 
paul_shmakov ©   (2002-03-17 05:38) [0]

а второй интерфейс - это ITapiEventsImplementation чтоль? объекты первого интерфейса у вас определены как persistent. объекты второго интерфейса тоже должны быть долгоживущими? если да, то можно использовать один и тот же poa для объектов сервантов обоих типов. если нет, то нужно создать еще один poa для нового интерфейса.
ну а дальше регистрируем сервант в poa и все должно работать.
если а второй интерфейс - это все же ITapiEventsImplementation и объекты этого интерфейса дожны быть transient, а не persistent, то вот пример:

CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var rootPOA = PortableServer::POA::_narrow(obj);

CORBA::PolicyList policies;
policies.length(1);
policies[(CORBA::ULong)0] = rootPOA->create_lifespan_policy(PortableServer::PERSISTENT);

// get the POA Manager
PortableServer::POAManager_var poa_manager = rootPOA->the_POAManager();

// Create myPOA with the right policies
clientPOA = rootPOA->create_POA("beltel_agent_poa", poa_manager, policies);

CORBA::PolicyList tapiPolicies;
tapiPolicies.length(0); // полиси по умолчанию

tapiPOA = rootPOA->create_POA("tapi_agent_poa", poa_manager, tapiPolicies);

// Create the servant
IAgentManagerImplementation clientServant;
ITapiEventsImplementation  tapiServant;

// Decide on the ID for the servant
PortableServer::ObjectId_var managerId = PortableServer::string_to_ObjectId("BeltelAgent");

PortableServer::ObjectId_var tapiId = PortableServer::string_to_ObjectId("BeltelTapiAgent");

// Activate the servant with the ID on myPOA
clientPOA->activate_object_with_id(managerId, &clientServant);
tapiPOA->activate_object_with_id(tapiId, &tapiServant);

// Activate the POA Manager
poa_manager->activate();

CORBA::Object_var clientReference = clientPOA->servant_to_reference(&clientServant);

// ну и ссылку получаем
CORBA::Object_var tapiReference = tapiPOA->servant_to_reference(&tapiServant);

orb->run();


 
paul_shmakov ©   (2002-03-17 06:23) [1]

кстати, я не обратил внимания, но, если мне не изменяет память, то вы в полиси должны добавить id assignment policy равное user_id, так как самостоятельно указываете object id.


CORBA::PolicyList policies;
policies.length(2);
policies[0] = rootPOA->create_lifespan_policy(PortableServer::PERSISTENT);
policies[1] = rootPoa->create_id_assignment_policy(PortableServer::USER_ID);



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
3-1086330712
freeman82
2004-06-04 10:31
2004.07.04
Добавление новой записи


14-1087179806
RealRascal
2004-06-14 06:23
2004.07.04
АСЯ:Вирусня? Или просто СПАМ?


3-1085991505
ceval
2004-05-31 12:18
2004.07.04
Подскажите как посредствам ADOTable связать две таблицы


4-1085125452
andruxa
2004-05-21 11:44
2004.07.04
Хуки всегда так тормозят систему?


14-1087283268
ИМХО
2004-06-15 11:07
2004.07.04
Access violation на Windows 2000 Server