LoadBalancerOwn::Demarshal

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

Осуществляет демаршаллинг адреса балансировщика нагрузки LoadBalancerOwn из потока чтения, создавая прокси-объект, реализующий интерфейс ILoadBalancer и при необходимости делегирующий вызов серверу балансировщика по прочитанному адресу.

  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Поток данных, из которого осуществляется демаршаллинг.
Возвращаемое значение:
Экземпляр LoadBalancerOwn, ассоциированный с реализацией ILoadBalancer, созданной на основе прочитанных данных.
Возможные исключения
Chusov::Exceptions::ChsvCodeExceptionИсключение, соответствующее коду ошибочного завершения, если последний возвращается функцией DemarshalLoadBalancer.
Chusov::Exceptions::InvalidParameterExceptionДлина идентификатора экземпляра подсистемы предметной области превосходит границу 4Гб.
См. также
DemarshalLoadBalancerОсуществляет демаршаллинг ссылки на балансировщик нагрузки из потока чтения и возвращает реализацию интерфейса ILoadBalancer, адресующую балансировщик через прочитанную ссылку.
LoadBalancerRef::MarshalПроизводит запись ссылки на балансировщик нагрузки в выходной поток.