Создание клиента

Приложение, выполняющее роль клиента для объекта, намного проще, чем сервер. Хотя и для него установлена некоторая последовательность действий:

Инициализация ORB такая же, как и при создании сервера. Получение ссылки на объект производится вызовом его метода связывания:
Для Си++:
  Test::Service_var service = 
  Test::Service::_bind
("ServiceObj");
Для Java:
  Test.Service service = 
  Test.ServiceHelper.bind(orb,
«"ServiceObj");

Обратите внимание на небольшую разницу в именах методов и на их разное расположение. Для Си++ метод _bind() описывается непосредственно в классе объекта, а для Java метод bind() помещается в отдельный класс-хэлпер.

Важное отличие VisiBroker for C++ от VisiBroker for Java: в качестве ссылки на объект используются экземпляры специального класса. Если вернуться к примеру выше, то видно, что имя типа ссылки начинается с имени интерфейса и заканчивается суффиксом _var. Описание класса данного типа делается компилятором idl2cpp. Прелесть _var-классов состоит в прозрачности их использования. Перегруженные операторы дают возможность присваивать значения ссылок, пользоваться для доступа к методам объекта операцией разыменовывания указателя (->) и автоматически удалять объекты после окончания их использования.

Осталось разобраться, как клиент может вызывать операции объекта. Вот типичный пример, когда клиент хочет узнать значение числа p:

Для Си++:
  CORBA::Float value = 
  service->get_PI_value();
Для Java:
  float value = 
  service.get_PI_value();
Предыдующее       Следующее

Назад