Domain response code t: различия между версиями
(не показана 1 промежуточная версия этого же участника) | |||
Строка 24: | Строка 24: | ||
* Размер текстового описания - размер четвертого поля в байтах. Равен нулю, если текстового описания нет. | * Размер текстового описания - размер четвертого поля в байтах. Равен нулю, если текстового описания нет. | ||
* Опциональное текстовое описание ошибки. | * Опциональное текстовое описание ошибки. | ||
Код [[domain_response_code_t]] (в том числе нулевой), возвращенный функцией [[IControlSystemDomainSide::FormResponse]], использует память кучи процесса, которая может быть освобождена с помощью функции [[InprocessControlFreeResponseCode]] из [[domain_shared]]. При однопроцессной реализации, а также в случае распределенной реализации через прокси из [[domain_shared]], когда код передается предметно-независимой подсистеме, которой принадлежит [[domain_shared]], владение ресурсом также передается, поэтому специальный вызов [[InprocessControlFreeResponseCode]] не требуется. | |||
===По релизации=== | |||
При синхронном удаленном вызове выходные данные следуют за указанной структурой, которая передается ответом подсистемы предметной области всегда. |
Текущая версия на 19:59, 9 сентября 2017
typedef std::uintptr_t domain_response_code_t;
Тип кода ответа подсистемы предметной области подсистеме управления.
Формат ответа определяется значением кода ошибки, определенным параметром nReturnCode функции IControlSystemDomainSide::FormResponse. Фактически значением кода ответа является приведенный к целому указатель на буфер в памяти, задающий поля описания кода ответа.
Если значение кода ошибки равно 0, этот указатель также устанавливается в 0, что дает для нормального завершения соответствующей операции, установившей код ошибки в 0, возможность не выделять медленную динамическую память.
Если же значение кода ошиибки не равно нулю, и/или функцией IControlSystemDomainSide::FormResponse задано текстовое описание для возвращенного кода, то образуемый функцией FormatResponse ответ является указателем на приведенную в таблице структуру данных, передаваемую подсистеме управления.
Поле | Размер блока | Код ошибки | Размер текстового описания | Текстовое описание |
---|---|---|---|---|
Размер, байт | 4 | 4 | 4 | Пред. поле. |
- Размер блока задает размер всей структуры данных в целом.
- Код ошибки - установленный по правилам chsvlib код ошибки, задаваемый параметром nReturnCode функции IControlSystemDomainSide::FormResponse. Если пространство ошибки задано идентификатором CHSV_FACILITY_GENERAL код будет анализироваться подсистемой управления.
- Размер текстового описания - размер четвертого поля в байтах. Равен нулю, если текстового описания нет.
- Опциональное текстовое описание ошибки.
Код domain_response_code_t (в том числе нулевой), возвращенный функцией IControlSystemDomainSide::FormResponse, использует память кучи процесса, которая может быть освобождена с помощью функции InprocessControlFreeResponseCode из domain_shared. При однопроцессной реализации, а также в случае распределенной реализации через прокси из domain_shared, когда код передается предметно-независимой подсистеме, которой принадлежит domain_shared, владение ресурсом также передается, поэтому специальный вызов InprocessControlFreeResponseCode не требуется.
По релизации
При синхронном удаленном вызове выходные данные следуют за указанной структурой, которая передается ответом подсистемы предметной области всегда.