ControlSystemEntryPoint

Материал из CAMaaS preliminary wiki
(перенаправлено с «Entry point»)
Перейти к навигации Перейти к поиску
Компоненты на верхнем уровне \ Подсистема управления \ ControlSystemEntryPoint
CAMaaS::return_code_t ControlSystemEntryPoint(
  std::uint32_t nFunctionId, const void* pPackedInputParams, std::uint32_t cbPackedInputParams, 
  void** pPackedOutputParams, std::uint32_t* pcbPackedOutputParams);

Точка входа в управляющую подсистему со стороны веб-сервера.

Параметры
nFunctionIdИдентификатор клиентского запроса, который может принимать одно из следующих значений:
Символическое имя Целочисленное значение Действие
CreateModelId 0 создание новой модели
CreateObjectId 1 создание нового элемента модели
UploadModelId 2 загрузка модели со стороны пользователя.
StartSimulationId 3 запуск физического моделирования в предметной области
GetProcessStatusId 4 получение сведений о состоянии процесса моделирования
GetSimulationResultsId 5 получение результатов моделирования
StopSimulationId 6 досрочная остановка процесса моделирования (не реализовано)
CloseSimulationId 7 закрытие моделирования и освобождение соответствующих ресурсов на сервере; если запущен процесс моделирования, то его остановка.
[in]pPackedInputParamsВходной буфер, содержащий параметры запроса в соответствии со значением nFunctionId.
cbPackedInputParamsБайтовый размер параметров запроса, т.е. размер буфера pPackedInputParams, выраженный как 32-битовое беззнаковое целое.
[out]pPackedOutputParamsВыходной указатель, который инициализируется адресом буфера с ответом управляющей подсистемы. Если ответ имеется, буфер выделяется управляющей подсистемой и должен освобождаться веб-сервером через вызов функции ControlSystemFreeData. Если же ответ отсутствует, на выходе указатель pPackedOutputParams и целое, на которое указывает параметр pcbPackedOutputParams, принимают нулевое значение. В случае ошибки, т.е. если функция возвращает ненулевое значение, буфер не возвращается, значения *pPackedOutputParams и pcbPackedOutputParams, не определены, и память не нужно освобождать.
[out]pcbPackedOutputParamsуказатель на 32-битовое беззнаковое целое, который на выходе принимает размер ответа сервера, если ответ имеется. Если ответ отсутствует, указателю присваивается значение 0.
Возвращаемое значение:
32-битовый беззнаковый код ошибки. В случае успешного вызова, возвращается нулевое значение. Код ошибки можно преобразовать в текстовое описание с помощью функции ControlSystemGetErrorDescription. См. также doxygen.