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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Точки входа в control.dll давно уже имеют другие имена)
(Точки входа в control.dll давно уже имеют другие имена)
Строка 8: Строка 8:
{{function_paramlist add|pPackedInputParams|Входной буфер, содержащий параметры запроса в соответствии со значением <code>nFunctionId</code>.|paramdir=[in]}}
{{function_paramlist add|pPackedInputParams|Входной буфер, содержащий параметры запроса в соответствии со значением <code>nFunctionId</code>.|paramdir=[in]}}
{{function_paramlist_add|cbPackedInputParams|Байтовый размер параметров запроса, т.е. размер буфера <code>pPackedInputParams</code>, выраженный как 32-битовое беззнаковое целое.}}
{{function_paramlist_add|cbPackedInputParams|Байтовый размер параметров запроса, т.е. размер буфера <code>pPackedInputParams</code>, выраженный как 32-битовое беззнаковое целое.}}
{{function_paramlist_add|pPackedOutputParams|Выходной указатель, который инициализируется адресом буфера с ответом управляющей подсистемы. Если ответ имеется, буфер выделяется управляющей подсистемой и должен освобождаться веб-сервером через вызов функции [[FreeData]]. Если же ответ отсутствует, на выходе указатель <code>pPackedOutputParams</code> и целое, на которое указывает параметр <code>pcbPackedOutputParams</code>, принимают нулевое значение.  
{{function_paramlist_add|pPackedOutputParams|Выходной указатель, который инициализируется адресом буфера с ответом управляющей подсистемы. Если ответ имеется, буфер выделяется управляющей подсистемой и должен освобождаться веб-сервером через вызов функции [[ControlSystemFreeData]]. Если же ответ отсутствует, на выходе указатель <code>pPackedOutputParams</code> и целое, на которое указывает параметр <code>pcbPackedOutputParams</code>, принимают нулевое значение.  


В случае ошибки, т.е. если функция возвращает ненулевое значение, буфер не возвращается, значения <code>*pPackedOutputParams</code> и <code>pcbPackedOutputParams</code>, не определены, и память не нужно освобождать.|paramdir=[out]}}
В случае ошибки, т.е. если функция возвращает ненулевое значение, буфер не возвращается, значения <code>*pPackedOutputParams</code> и <code>pcbPackedOutputParams</code>, не определены, и память не нужно освобождать.|paramdir=[out]}}

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