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

Описания RDS

Описание пользователя

Глава 3. Использование стандартных модулей автокомпиляции

§3.7. Краткий перечень вводимых в модель описаний и реакций на события

§3.7.2. Создание и уничтожение блока

§3.7.2.2. Очистка данных блока

# Описание пользователя

## Глава 3. Использование стандартных модулей автокомпиляции

### §3.7. Краткий перечень вводимых в модель описаний и реакций на события

#### §3.7.2. Создание и уничтожение блока

##### §3.7.2.2. Очистка данных блока

Очистка данных блока – это самое последнее событие в «жизни» блока, возникающее непосредственно перед отключением модели от этого блока из-за его удаления, выгрузки схемы из памяти (например, при закрытии RDS) или подключения к блоку другой модели. В реакции на это событие, как и в реакции на событие инициализации, нельзя обращаться к переменным блока – если сделать это, будет выведено сообщение об ошибке (см. рис. 486). В основном, реакция на очистку данных блока используется для удаления динамических объектов: если в реакции на инициализацию блока разработчик модели вручную отвел память под какие-либо служебные объекты, в реакции на очистку эту память нужно освободить.

Реакция на событие очистки данных вводится на вкладке «события» левой панели редактора модели: раздел «создание и уничтожение», подраздел «очистка блока». Для этой реакции модуль автокомпиляции создает в классе блока функцию без параметров с именем rdsbcppCleanup, внутрь которой вставляется текст программы, введенной пользователем. Функция имеет следующий вид:

      // Block data cleanup before model disconnection
      void rdsbcppBlockClass::rdsbcppCleanup(void)
      {
         … пользовательский текст реакции …
      }

При написании моделей блоков без использования модуля автокомпиляции событию очистки данных соответствует константа RDS RDS_BFM_CLEANUP.