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

Описания RDS

Приложения

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

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

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

А.5.24.5. Команда RDS_HBCL_AUTODELETE – отслеживание удаления блоков и связей

# Приложения

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

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

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

##### А.5.24.5. Команда RDS_HBCL_AUTODELETE – отслеживание удаления блоков и связей

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

Вызов команды для установки

      int iOn=…  // 1 – включить, 0 - выключить
      rdsSetObjectInt(List,RDS_HBCL_AUTODELETE,0,iOn);

Вызов команды для чтения

      int iOn=rdsGetObjectInt(List,RDS_HBCL_AUTODELETE,0);

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

List(RDS_HOBJECT)
  Идентификатор вспомогательного объекта-списка, ранее созданного функцией rdsBCLCreateList.
iOn(int)
  Целое число (int), указывающее на состояние функции отслеживания удаленных объектов: 1 – автоматическое выбрасывание удаленных объектов из списка включено, 0 – выключено.

Примечания

При включенном автоматическом отслеживании RDS будет следить за удалением блоков и связей и автоматически заменять в списке идентификаторы удаленных объектов значением NULL. Это необходимо в тех случаях, когда заполнение списка и обращение к нему разнесены во времени, и в интервале между ними блоки и связи могут быть удалены пользователем или программно. Если не включить отслеживание удаления, в списке могут оказаться идентификаторы, которым больше не соответствует блок или связь, что приведет к ошибкам при использовании этих идентификаторов в сервисных функциях. Если же обращение к списку производится сразу после его заполнения (например, в одной и той же реакции модели блока), в автоматическом отслеживании удаления нет необходимости.

Пример

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

См. также

rdsBCLCreateList, rdsSetObjectInt, rdsGetObjectInt.