Описание пользователя
Глава 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.