У меня есть простой интерфейс CORBA с помощью простой операции, как показано в этом IDL экстракте:CORBA: Есть ли способ указать значение по умолчанию для аргумента операции в IDL?
interface MtInterface
{
void myOperation(in string id);
}
Мне нужно добавить булево аргумент myOperation. Так что все, что я делаю, это изменить свой IDL на:
interface MtInterface
{
void myOperation(in string id, in boolean flag);
}
Теперь это все хорошо, за исключением того, что этот интерфейс используется довольно много места, и я хотел бы избежать необходимости изменить все вызовы, дает значение по умолчанию false
к flag
, так что моя первая попытка выглядит следующим образом:
interface MtInterface
{
void myOperation(in string id, in boolean flag = false);
}
, но это делает OmniORB кору Syntax error in operation parameters
.
Итак, чтобы повторить вопрос в заголовке: есть ли способ указать значение по умолчанию для аргумента операции вообще в моем IDL? И в этом конкретном случае, как бы указать значение по умолчанию false
для flag
?
Благодарим за помощь!
В IDL ничего не поддерживается. У нас есть теперь аннотации IDL, поэтому поставщик может использовать это как способ добавить такую поддержку для языков, которые ее поддерживают. –
@JohnnyWillemsen, где я могу прочитать об аннотациях IDL? Это последняя спецификация CORBA? –
Это часть DDS X-Types и будет интегрирована в IDL4 (когда мы найдем время для работы над этим), см. Http://www.omg.org/spec/DDS-XTypes/Current –