Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.24. Вспомогательный объект для работы со списком блоков и связей

А.5.24.9. Команда RDS_HBCL_CONNARRAY – получение массива связей/шин

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.24. Вспомогательный объект для работы со списком блоков и связей

##### А.5.24.9. Команда RDS_HBCL_CONNARRAY – получение массива связей/шин

Команда RDS_HBCL_CONNARRAY позволяет получить указатель на внутренний массив идентификаторов связей (шин) в объекте-списке и общее число идентификаторов в этом массиве.

Вызов команды

      int iCount;
      RDS_CHANDLE *arrConns=(RDS_CHANDLE*)rdsGetObjectArray(
        List,RDS_HBCL_CONNARRAY,0,&iCount);

Параметры и результат

List(RDS_HOBJECT)
  Идентификатор вспомогательного объекта-списка, ранее созданного функцией rdsBCLCreateList.
iCount(int)
  Целая переменная, в которую функция rdsGetObjectArray запишет общее число связей и шин в списке. Вместо указателя на эту переменную можно передать NULL, если размер списка не нужен вызывающей программе.
arrConns(RDS_CHANDLE*)
  Указатель на первый элемент массива идентификаторов связей и шин. Функция rdsGetObjectArray возвращает указатель общего вида, поэтому перед использованием его нужно привести к типу «указатель на RDS_CHANDLE» (RDS_CHANDLE*).

Примечания

Команда RDS_HBCL_CONNARRAY, переданная через сервисную функцию rdsGetObjectArray, возвращает указатель на первый элемент внутреннего массива идентификаторов связей и шин из объекта List. Если командой RDS_HBCL_AUTODELETE включено отслеживание удаления блоков и связей, некоторые элементы этого массива могут иметь значение NULL. В приведенной выше записи вызова команды общее число элементов в массиве (включая элементы со значением NULL) записывается в переменную iCount. Идентификаторы связей и шин будут элементами массива arrConns: от arrConns[0] до arrConns[iCount-1].

Следует помнить, что указатель на внутренний массив идентификаторов, возвращаемый функцией rdsGetObjectArray, можно использовать только до тех пор, пока вызовом функции rdsBCLAddConn в список не будет добавлена новая связь. Добавление новой связи может привести к отведению нового массива и уничтожению старого, поэтому после добавления связей и шин указатель на массив идентификаторов нужно получать заново.

Пример

Пример использования команды RDS_HBCL_CONNARRAY приведен в §2.16.2 руководства программиста.

См. также

rdsBCLCreateList, rdsGetObjectArray, RDS_HBCL_AUTODELETE, rdsBCLAddConn.