BindLoadBalancerToTCPServer: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
Строка 8: Строка 8:
{{function_paramlist add|nServerPort|Порт, который должен прослушиваться создаваемым сервером.}}
{{function_paramlist add|nServerPort|Порт, который должен прослушиваться создаваемым сервером.}}
{{function_paramlist add|pCtrl|Указатель на экземпляр [[Подсистема управления|подсистемы управления]], для которой создается TCP сервер.}}
{{function_paramlist add|pCtrl|Указатель на экземпляр [[Подсистема управления|подсистемы управления]], для которой создается TCP сервер.}}
{{function_paramlist add|pAggregatee|Балансировщик нагрузки, который агрегируется TCP сервером. Сервер вызывает методы интерфейса [[ILoadBalancer]] в соответствии с [[LoadBalancerRequests|поступающими запросами]] {{mark|text= - кроме методов [[INode::IsInterfaceAvailable]], [[INode::RepresentAs]], а также собственных методов интерфейса [[ITCPNode]]}}.|paramdir=[in]}}
{{function_paramlist add|pAggregatee|Балансировщик нагрузки, который агрегируется TCP сервером. Сервер вызывает методы интерфейса [[ILoadBalancer]] в соответствии с [[LoadBalancerRequests|поступающими запросами]]. В случае успешного выполнения функции [[BindLoadBalancerToTCPServer]] владение экземпляром <tt>pAggregatee</tt> передается создаваемому серверу.|paramdir=[in]}}
{{function_paramlist add|fOwnAggregatee|Флаг передачи владения экземпляром <tt>pAggregatee</tt> создаваемому серверу. Если флаг сброшен, а также если функция завершается с ошибкой, вызывающий ответственнен за закрытие экземпляра <tt>pAggregatee</tt>.|paramdir=[in]}}
{{function_paramlist add|pDomainName|Идентификатор экземпляра подсистемы предметной области, для которой создается возвращаемый через <tt>ppAggregate</tt> балансировщик нагрузки. Параметр <tt>pDomainName</tt> является UTF-8 строкой без терминального нуля и имеет длину <tt>cbDomainName</tt> байт.|paramdir=[in]}}
{{function_paramlist add|ppAggregate|Созданный экземпляр TCP-сервера с интерфейсом [[INode]]. Также экземпляр поддерживает интерфейс [[ITCPNode]], доступ к которому может быть получен путем вызова функции [[INode::RepresentAs]]. В случае ошибки выходное значение указателя <tt>pAggregate</tt> устанавливается в <source lang="cpp" inline>nullptr</source>.|paramdir=[out]}}
{{function_paramlist add|cbDomainName|Длина строки <tt>pDomainName</tt> в байтах.}}
{{function_paramlist add|ppAggregate|Созданный экземпляр TCP-сервера с интерфейсом [[ILoadBalancer]]. В случае ошибки выходное значение указателя <tt>ppAggregate</tt> устанавливается в <source lang="cpp" inline>nullptr</source>.|paramdir=[out]}}
{{function_paramlist end}}
{{function_paramlist end}}
{{function_return_value|32-битовый целый код ошибки, который неотрицателен при успешности операции.}}
{{function_return_value|32-битовый целый код ошибки, который неотрицателен при успешности операции.}}
{{function_end}}
{{function_end}}

Текущая версия на 18:24, 21 декабря 2017

return_code_t PLATFORM_NATIVE_CALLING_CONVENTION BindLoadBalancerToTCPServer(
    const char* pServerAddress, std::size_t cbServerAddress, std::uint16_t nServerPort, 
    IControlSystemDomainSide* pCtrl, ILoadBalancer* pAggregatee, const char* pDomainName, std::size_t cbDomainName, 
    ILoadBalancer** ppAggregate) noexcept;

Задает привязку балансировщика нагрузки, с передачей владения, с интерфейсом ILoadBalancer к TCP серверу для обработки им запросов LoadBalancerRequests путем вызова соответствующих методов ILoadBalancer.

Параметры
[in]pServerAddressСтрока с адресом создаваемого TCP сервера. Длина строки задается параметром cbServerAddress.
cbServerAddressДлина строки pServerAddress в байтах.
nServerPortПорт, который должен прослушиваться создаваемым сервером.
pCtrlУказатель на экземпляр подсистемы управления, для которой создается TCP сервер.
[in]pAggregateeБалансировщик нагрузки, который агрегируется TCP сервером. Сервер вызывает методы интерфейса ILoadBalancer в соответствии с поступающими запросами. В случае успешного выполнения функции BindLoadBalancerToTCPServer владение экземпляром pAggregatee передается создаваемому серверу.
[in]pDomainNameИдентификатор экземпляра подсистемы предметной области, для которой создается возвращаемый через ppAggregate балансировщик нагрузки. Параметр pDomainName является UTF-8 строкой без терминального нуля и имеет длину cbDomainName байт.
cbDomainNameДлина строки pDomainName в байтах.
[out]ppAggregateСозданный экземпляр TCP-сервера с интерфейсом ILoadBalancer. В случае ошибки выходное значение указателя ppAggregate устанавливается в nullptr.
Возвращаемое значение:
32-битовый целый код ошибки, который неотрицателен при успешности операции.