Прежде чем я начну использовать CORBA, я хочу кое-что знать.CORBA: Может ли тип CORBA IDL быть атрибутом другого?
Мне показалось бы интуитивным, что вы можете использовать IDL-тип как атрибут другого, который затем будет подвергать методы этого атрибута клиентскому приложению (используя «.»).
Но разве это возможно?
Например (простите мой плохой IDL):
interface Car{
attribute BrakePedal brakePedal;
//...
}
//then.. (place above)
interface BrakePedal{
void press();
//...
}
//...
Затем в приложении клиента, вы можете сделать: myCar.brakePedal.press();
CORBA казалось бы херово, если вы не могли бы сделать такого рода мульти- уровень интерфейсы объектов. В конце концов, объекты реального мира являются многоуровневыми, верно? Так может кто-то положил мой разум и подтвердил (или попробуйте, если у вас уже установлен CORBA), если это определенно работает? Ни одна из документации IDL явно не показывает это в примере, поэтому я обеспокоен. Благодаря!
Я думаю, что вы просто не понимаете атрибутов. Атрибуты - короткие руки для функций. В этом случае вы вызываете функцию «читать». Вызов второго уровня происходит на стороне клиента. Сервер полностью не осознает, что вы это сделаете, когда сделаете атрибут «читать», поэтому его нельзя «оптимизировать». Он не знает, что вы собираетесь делать с этой ссылкой на объект. Нет, я не думаю, что мы увидим новую, большую версию CORBA. Он используется только в нескольких специализированных нишевых приложениях и устаревших приложениях прямо сейчас. –