Приложение, выполняющее роль клиента для объекта, намного проще, чем сервер. Хотя и для него установлена некоторая последовательность действий:
Для Си++: 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();Предыдующее Следующее