Создание интерфейса IDL для метода, который возвращает массив

#java #arrays #corba #idl

#java #массивы #corba #idl

Вопрос:

Как написать файл IDL для метода, который возвращает массив с плавающей точкой. Я понимаю файл IDL следующим образом

 module AdditionApp
{
  interface Addition
  {
    float add(in float x, in float y);
    oneway void shutdown();
  };
};
  

Здесь add метод возвращает значение с плавающей точкой. Но как написать файл IDL для программы, в которой есть метод, возвращающий массив с плавающей точкой?

Ответ №1:

Вы должны использовать typedef в IDL, поэтому он должен быть

 module AdditionApp
{
  typedef float floatArray[5];
  interface Addition
  {
    floatArray add(in float x, in float y);
    oneway void shutdown();
  };
};
  

Обратите внимание, что массив имеет заранее определенный размер. Если вам нужен переменный размер, вам нужно использовать

 module AdditionApp
{
  typedef sequence<float> floatSeq;
  interface Addition
  {
    floatSeq add(in float x, in float y);
    oneway void shutdown();
  };
};
  

Комментарии:

1. Ваш пример с переменным размером, похоже, такой же, как и первый.