ControlSystemEntryPoint: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
м (Андрей Чусов переименовал страницу Entry point в ControlSystemEntryPoint: Точки входа в control.dll давно уже имеют другие имена)
(Точки входа в control.dll давно уже имеют другие имена)
Строка 1: Строка 1:
{{DISPLAYTITLE:entry_point}}
{{NavBar|{{Системная иерархия:Подсистема управления}} \ ControlSystemEntryPoint}}
{{NavBar|{{Системная иерархия:Подсистема управления}} \ entry_point}}


{{function begin|std::uint32_t entry_point(std::uint32_t nFunctionId, const void* pPackedInputParams, std::uint32_t cbPackedInputParams,  
{{function begin|CAMaaS::return_code_t ControlSystemEntryPoint(
void** pPackedOutputParams, std::uint32_t* pcbPackedOutputParams);|Точка входа в управляющую подсистему со стороны [[Веб-сервер | веб-сервера]].}}
  std::uint32_t nFunctionId, const void* pPackedInputParams, std::uint32_t cbPackedInputParams,  
  void** pPackedOutputParams, std::uint32_t* pcbPackedOutputParams);|Точка входа в управляющую подсистему со стороны [[Веб-сервер | веб-сервера]].}}
{{function_paramlist begin}}
{{function_paramlist begin}}
{{function_paramlist add|nFunctionId|Идентификатор клиентского запроса, который может принимать одно из следующих значений: {{Control Message Table}}}}
{{function_paramlist add|nFunctionId|Идентификатор клиентского запроса, который может принимать одно из следующих значений: {{Control Message Table}}}}

Версия 18:42, 4 июня 2019

Компоненты на верхнем уровне \ Подсистема управления \ 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Выходной указатель, который инициализируется адресом буфера с ответом управляющей подсистемы. Если ответ имеется, буфер выделяется управляющей подсистемой и должен освобождаться веб-сервером через вызов функции FreeData. Если же ответ отсутствует, на выходе указатель pPackedOutputParams и целое, на которое указывает параметр pcbPackedOutputParams, принимают нулевое значение. В случае ошибки, т.е. если функция возвращает ненулевое значение, буфер не возвращается, значения *pPackedOutputParams и pcbPackedOutputParams, не определены, и память не нужно освобождать.
[out]pcbPackedOutputParamsуказатель на 32-битовое беззнаковое целое, который на выходе принимает размер ответа сервера, если ответ имеется. Если ответ отсутствует, указателю присваивается значение 0.
Возвращаемое значение:
32-битовый беззнаковый код ошибки. В случае успешного вызова, возвращается нулевое значение. Код ошибки можно преобразовать в текстовое описание с помощью функции GetErrorDescription. См. также doxygen.