Навигация:
<< >> Оглавление Указатель

Приложения

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

А.2. События блока и связанные с ними описания

А.2.4. События общего назначения

А.2.4.3. RDS_BFM_CLEANUP – очистка данных блока

Поток, в котором вызывается функция модели

Главный поток RDS.

Первый параметр функции модели (int CallMode)

Константа RDS_BFM_CLEANUP.

Третий параметр функции модели (void *ExtParam)

Не используется (NULL).

Возвращаемое функцией модели значение

Не используется, можно возвращать любое значение.

Примечания

Событие RDS_BFM_CLEANUP – последнее событие перед отключением модели от блока из-за его удаления, выгрузки схемы из памяти, подключения к блоку новой модели и т.п. Если в реакции на событие RDS_BFM_INIT модель отвела память под личную область данных блока, в реакции на RDS_BFM_CLEANUP она должна освободить ее. События инициализации и очистки подробно рассмотрены в §2.4.

Пример

Отведение памяти под личную область данных блока оператором C++ new и ее освобождение оператором delete.

  // Структура  блока
  typedef struct
  { int IntData;
    double DoubleData;
  } TMyBlockData;

  // Модель блока
  extern "C" __declspec(dllexport) int  (
    int CallMode,             // Событие
     BlockData, // Данные блока
     ExtParam)          // Дополнительные параметры
  { TMyBlockData *data;
    switch(CallMode)
      { case :   // Отведение памяти
          data=new TMyBlockData;
          BlockData->BlockData=data;
          data->IntData=0;
          data->DoubleData=1.0;
          break;
        case : // Освобождение памяти
          data=(TMyBlockData*)(BlockData->BlockData);
          delete data;
          break;
      }
    return ;
  }

См. также

RDS_BFM_INIT.


<< >> Оглавление Указатель