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

Описания RDS

Приложения

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

А.3. События модуля автокомпиляции и связанные с ними структуры

А.3.4. События модуля автокомпиляции

А.3.4.6. RDS_COMPM_COMPILE – компиляция моделей

# Приложения

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

### А.3. События модуля автокомпиляции и связанные с ними структуры

#### А.3.4. События модуля автокомпиляции

##### А.3.4.6. RDS_COMPM_COMPILE – компиляция моделей

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

Константа RDS_COMPM_COMPILE.

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

Указатель на структуру RDS_COMPILEDATA, содержащую список моделей, которые должны быть скомпилированы.

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

RDS_COMPR_DONE | Модели скомпилированы.
RDS_COMPR_ERROR | Модели не скомпилированы.

Примечания

Событие RDS_COMPM_COMPILE возникает в тот момент, когда нужно скомпилировать все обслуживаемые модулем модели. Необходимость компиляции проверяется при вызове реакции на другое событие, RDS_COMPM_PREPARE, которая вызывается для каждой модели в отдельности. В отличие от RDS_COMPM_PREPARE, событие RDS_COMPM_COMPILE возникает не для каждой модели, а один раз для всего модуля. Именно в реакции на него обычно выполняются все основные действия модуля: формирование исходного текста программы, вызов компилятора, обработка ошибок компиляции и т.п. Кроме того, если в параметрах модели задается структура статических переменных блока (а, как правило, это необходимо), в этой реакции всем блокам, которым назначена эта модель, присваивается указанная структура переменных.

В параметре ExtParam при реакции на событие RDS_COMPM_COMPILE передается указатель на структуру RDS_COMPILEDATA:

      typedef struct {
        RDS_PCOMPMODELDATA *InvalidModels; // Модели, которые нужно компилировать
        RDSINT32 IMCount;                  // Размер массива InvalidModels
        BOOL Rebuild;                      // Принудительная перекомпиляция всех моделей
      } RDS_COMPILEDATA;
      typedef RDS_COMPILEDATA *RDS_PCOMPILEDATA;

Поля структуры

InvalidModels(RDS_PCOMPMODELDATA*)
  Массив указателей на структуры данных RDS_COMPMODELDATA тех моделей, которые должны быть скомпилированы. Этот массив формируется RDS, функция модуля не должна менять его элементы. Модуль должен скомпилировать модели InvalidModels[0] … InvalidModels[IMCount-1].
IMCount(RDSINT32)
  Число моделей, которые необходимо скомпилировать, то есть размер массива InvalidModels.
Rebuild(BOOL)
  TRUE, если пользователь выбрал принудительную компиляцию всех моделей схемы, FALSE в противном случае. Независимо от значения этого поля, функция модуля должна скомпилировать только те модели, указатели на данные которых находятся в массиве InvalidModels. При принудительной компиляции этот массив будет содержать все модели блоков, обслуживаемые данным модулем.

См. также

RDS_COMPM_PREPARE, rdscompCompileModel.