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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
(Новая страница: «{{DISPLAYTITLE:domain_response_code_t}} {{NavBar|{{Системная иерархия:Подсистема управления}} \ domain_response_code_t}}…»)
 
 
(не показаны 3 промежуточные версии этого же участника)
Строка 21: Строка 21:


* Размер блока задает размер всей структуры данных в целом.
* Размер блока задает размер всей структуры данных в целом.
* Код ошибки - установленный по правилам [https://www.chusov.org/doxygen/group___error_handling.html] код ошибки, задаваемый параметром <tt>nReturnCode</tt> функции [[IControlSystemDomainSide::FormResponse]]. Если пространство ошибки задано идентификатором <tt>FACILITY_CHUSOV_GENERAL</tt> код будет анализироваться подсистемой управления.
* Код ошибки - установленный по правилам [https://www.chusov.org/doxygen/group___error_handling.html chsvlib] код ошибки, задаваемый параметром <tt>nReturnCode</tt> функции [[IControlSystemDomainSide::FormResponse]]. Если пространство ошибки задано идентификатором <tt>[https://www.chusov.org/doxygen/group___error_handling.html#CHSVCODES CHSV_FACILITY_GENERAL]</tt> код будет анализироваться подсистемой управления.
* Размер текстового описания - размер четвертого поля в байтах. Равен нулю, если текстового описания нет.
* Размер текстового описания - размер четвертого поля в байтах. Равен нулю, если текстового описания нет.
* Опциональное текстовое описание ошибки.
* Опциональное текстовое описание ошибки.
Код [[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 не требуется.

По релизации

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