MarshalNode
Версия от 23:57, 17 декабря 2017; Андрей Чусов (обсуждение | вклад)
return_code_t PLATFORM_NATIVE_CALLING_CONVENTION MarshalNode(
const INode* pNode,
const char* pDomainName,
size_type cchDomainName,
std::uint32_t nFormat,
IOutputStream* pOs) noexcept;
Осуществляет запись в выходной поток ссылки на внутрипроцессный или удаленный вычислительный узел INode.
- Параметры
[in] pNode C-указатель на реализацию интерфейса INode, которую необходимо адресовать данными, записываемыми в поток pOs. [in] pDomainName Строковой идентификатор экземпляра подсистемы предметной области, для которого осуществляется запись в поток. Строку не нужно завершать терминальным нулем. cchDomainName Длина строки pDomainName в байтах. nFormat Задает формат, по которому осуществляется в поток. Формат задается одной из констант перечисления DefinitionFormat: Символическое имя Целочисленное значение Описание DEFINED_AS_BINARY 1 Данные запакованы в двоичном виде. См. package. DEFINED_AS_XML 2 Данные запакованы в XML виде. Не поддерживается. [in] pOs Поток для записи данных об узле. - Возвращаемое значение:
- 32-битовый целый код ошибки, который неотрицателен при успешности операции.
- См. также
DemarshalNode Осуществляет демаршаллинг адреса вычислительного узла INode из потока чтения и создает прокси-объект, реализующий интерфейс INode и при необходимости делегирующий вызов серверу узла по прочитанному адресу.
Формат данных, которые пишутся в выходной поток.
Если nFormat == DefinitionFormat::DEFINED_AS_BINARY
, то:
- для внутрипроцессной реализации узла
- в поток pOs пишется значение
NodeServerType::NodeIsInprocessServer
, (4б), затем машинное слово с указателем на реализацию INode, равным pNode; - для реализации узла TCP-сервером
- в поток pOs пишется значение
NodeServerType::NodeIsTCPServer
(4б), затем длина адреса TCP-сервера, реализующего узел, (4б), затем строковое выражение адреса сервера (UTF-8) и далее порт (2б).
Функция никогда не завладевает объектом pNode. При успешном завершении функции вызывающий должен самостоятельно увеличить счетчик ссылок на объект pNode.