Domain response code t: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
Строка 24: Строка 24:
* Размер текстового описания - размер четвертого поля в байтах. Равен нулю, если текстового описания нет.
* Размер текстового описания - размер четвертого поля в байтах. Равен нулю, если текстового описания нет.
* Опциональное текстовое описание ошибки.
* Опциональное текстовое описание ошибки.
Код [[domain_response_code_t]] (в том числе нулевой), возвращенный функцией [[IControlSystemDomainSide::FormResponse]], использует память кучи процесса, которая может быть освобождена с помощью функции [[InprocessControlFreeResponseCode]] из [[domain_shared]]. При однопроцессной реализации, а также в случае распределенной реализации через прокси из [[domain_shared]], когда код передается предметно-независимой подсистеме, которой принадлежит [[domain_shared]], владение ресурсом также передается, поэтому специальный вызов [[InprocessControlFreeResponseCode]] не требуется.


===По релизации===
===По релизации===
При синхронном удаленном вызове выходные данные следуют за указанной структурой, которая передается ответом подсистемы предметной области всегда.
При синхронном удаленном вызове выходные данные следуют за указанной структурой, которая передается ответом подсистемы предметной области всегда.

Текущая версия на 19:59, 9 сентября 2017

Компоненты на верхнем уровне \ Подсистема управления \ domain_response_code_t
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 не требуется.

По релизации

При синхронном удаленном вызове выходные данные следуют за указанной структурой, которая передается ответом подсистемы предметной области всегда.