NodeOwn::Demarshal

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
NodeOwn Demarshal(const char* pDomainName, size_type cchDomainName, DefinitionFormat nFormat, InputStreamRef is, ControlSystemDomainSideRef control); //1
NodeOwn Demarshal(const char* pszDomainName, DefinitionFormat nFormat, InputStreamRef is, ControlSystemDomainSideRef control); //2
NodeOwn Demarshal(const domain_name_type& strDomainName, DefinitionFormat nFormat, InputStreamRef is, ControlSystemDomainSideRef control); //3

Статическая функция, осуществляющая демаршаллинг узла из входного потока в реализацию INode, ассоциирующая с этой реализацией вновь созданный объект NodeOwn и возвращающая его.

  1. Идентификатор предметной области задается строкой заданной длины.
  2. Идентификатор предметной области задается строкой с терминальным нулем.
  3. Идентификатор предметной области задается типом domain_name_type.
Параметры
[in]pDomainNameУказатель на строку с идентификатором экземпляра подсистемы предметной области, для которой осуществляется демаршаллинг.
cchDomainNameДлина строки cchDomainName в байтах.
[in]pszDomainNameC-строка с терминальным нулем, задающая идентификатор экземпляра подсистемы предметной области, для которой осуществляется демаршаллинг.
strDomainNameC++-строка domain_name_type, задающая идентификатор экземпляра подсистемы предметной области, для которой осуществляется демаршаллинг.
nFormatФормат, в соответствии с которым осуществляется демаршаллинг. Принимает одно из значений
Символическое имяЦелочисленное значениеОписание
DEFINED_AS_BINARY1Данные запакованы в двоичном виде. См. package.
DEFINED_AS_XML2Данные запакованы в XML виде. Не поддерживается.
isПоток данных, из которого осуществляется демаршаллинг.
controlПодсистема управления, в контексте которой осуществляется демаршаллинг.
Возвращаемое значение:
Экземпляр NodeOwn, ассоциированный с реализацией INode, созданной на основе прочитанных данных.
Возможные исключения
Chusov::Exceptions::ChsvCodeExceptionИсключение, соответствующее коду ошибочного завершения, если последний возвращается функцией DemarshalNode.
Chusov::Exceptions::InvalidParameterExceptionДлина идентификатора экземпляра подсистемы предметной области превосходит границу 4Гб.
См. также
DemarshalNodeОсуществляет демаршаллинг адреса вычислительного узла INode из потока чтения и создает прокси-объект, реализующий интерфейс INode и при необходимости делегирующий вызов серверу узла по прочитанному адресу.
NodeRef::MarshalОсуществляет маршаллинг узла в выходной поток OutputStreamRef.