Приложения
Приложение А. Функции, константы и структуры RDS
А.3. События модуля автокомпиляции и связанные с ними структуры
А.3.4. События модуля автокомпиляции
А.3.4.16. RDS_COMPM_PREPARE – подготовка модели к компиляции
Первый параметр функции модуля (int CallMode)
Константа RDS_COMPM_PREPARE.
Третий параметр функции модуля (void *ExtParam)
Указатель на структуру RDS_COMPPREPAREDATA, содержащую указатель на данные модели.
Возвращаемое функцией модуля значение
Не используется, можно возвращать любое значение.
Примечания
Реакция на событие RDS_COMPM_PREPARE вызывается для каждой модели, обслуживаемой данным модулем, для проверки необходимости компиляции этой модели и для подготовки ее к компиляции. Если модель не требуется компилировать (то есть файл DLL, соответствующий этой модели, существует, и текст модели не изменялся с момента последней компиляции), функция модуля должна в этой реакции присвоить полю Valid структуры данных модели RDS_COMPMODELDATA значение TRUE (исходно туда заносится значение FALSE). Если после реакции на все события RDS_COMPM_PREPARE хотя бы у одной модели поле Valid будет иметь значение FALSE, возникнет событие RDS_COMPM_COMPILE, в реакции на которое функция модуля должна будет скомпилировать модель. Если компиляция моделей производится по команде пользователя «», установка поля Valid будет игнорироваться: независимо от него в параметрах события RDS_COMPM_COMPILE будут указаны все модели, обслуживаемые данным модулем.
Реагируя на событие RDS_COMPM_PREPARE, функция модуля должна, помимо установки поля Valid в структуре данных модели, указать имя файла DLL, который будет создан в результате компиляции, и имя экспортированной функции модели блока в этом файле. Для этого она должна вызвать сервисную функцию rdscompSetModelFunction.
В параметре ExtParam при реакции на событие RDS_COMPM_PREPARE передается указатель на структуру RDS_COMPPREPAREDATA:
typedef struct { RDS_PCOMPMODELDATA Model; // Данные модели BOOL Rebuild; // Принудительная компиляция } RDS_COMPPREPAREDATA; typedef RDS_COMPPREPAREDATA *RDS_PCOMPPREPAREDATA;
Поля структуры
- Model (RDS_PCOMPMODELDATA)
- Указатель на структуру данных модели RDS_COMPMODELDATA, которую нужно подготовить к компиляции. В этой структуре функция модуля должна присвоить полю Valid значение TRUE, если модель компилировать не нужно.
- Rebuild (BOOL)
- TRUE, если пользователь выбрал принудительную компиляцию всех моделей схемы, FALSE в противном случае.
Пример
Пример реакции на событие RDS_COMPM_PREPARE приведен в §3.4 руководства программиста.
См. также
RDS_COMPM_COMPILE, RDS_COMPMODELDATA, rdscompSetModelFunction.