Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Socket service requirements

Boost , Boost.Asio , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Служба розетки должна соответствовать требованиям к объектной службеввода/выводас поддержкой подвижности, а также дополнительным требованиям, перечисленным ниже.

В приведенной ниже таблице<X>обозначает класс обслуживания сокетов для протоколов<Protocol>,<a>и<ao>обозначает значения типа<X>,<b>и<c>обозначает значения типа<X::implementation_type>,<p>обозначает значение типа<X::native_handle_type>,<e>обозначает значение типа<Protocol::endpoint>,<ec>обозначает значение типа<error_code>,<s>обозначает значение, отвечающее требованиям<SettableSocketOption>,<g>обозначает значение, отвечающее требованиям<GettableSocketOption>,<i>обозначает значение, отвечающее требованиям<IoControlCommand>,<h>обозначает значение типа<socket_base::shutdown_type>,<ch>обозначает значение, отвечающее требованиям<ConnectHandler>и<u>и<v>обозначает идентификаторы.

Table 30. SocketService requirements

выражение

Тип возврата

утверждение/примечание
до/после условия

X::native_handle_type

The implementation-defined native representation of a socket. Must satisfy the requirements of CopyConstructible types (C++ Std, 20.1.3), and the requirements of Assignable types (C++ Std, 23.1).

a.construct(b);

From IoObjectService requirements.
post: !a.is_open(b).

a.destroy(b);

From IoObjectService requirements. Implicitly cancels asynchronous operations, as if by calling a.close(b, ec).

a.move_construct(b, c);

From IoObjectService requirements. The underlying native representation is moved from c to b.

a.move_assign(b, ao, c);

ИзТребования к IoObjectService. Неявно отменяет асинхронные операции, связанные с<b>, как бы звоня<a.close(b, ec)>. После этого он переходит от<c>к<b>.

a.open(b, p, ec);

<error_code>

pre: !a.is_open(b).
post: !!ec || a.is_open(b).

a.assign(b, p, n, ec);

<error_code>

pre: !a.is_open(b).
post: !!ec || a.is_open(b).

<
a.is_open(b);
>

<bool>

const X& u = a;
const X::implementation_type& v = b;
u.is_open(v);

<bool>

a.close(b, ec);

<error_code>

If a.is_open() is true, causes any outstanding asynchronous operations to complete as soon as possible. Handlers for cancelled operations shall be passed the error code error::operation_aborted.
post: !a.is_open(b).

a.native_handle(b);

X::native_handle_type

a.cancel(b, ec);

<error_code>

pre: a.is_open(b).
Causes any outstanding asynchronous operations to complete as soon as possible. Handlers for cancelled operations shall be passed the error code error::operation_aborted.

<
a.set_option(b,s,ec);
>

<error_code>

pre: a.is_open(b).

a.get_option(b, g, ec);

<error_code>

pre: a.is_open(b).

const X& u = a;
const X::implementation_type& v = b;
u.get_option(v, g, ec);

<error_code>

pre: a.is_open(b).

a.io_control(b, i, ec);

<error_code>

pre: a.is_open(b).

a.at_mark(b, ec);

<bool>

pre: a.is_open(b).

const X& u = a;
const X::implementation_type& v = b;
u.at_mark(v, ec);

<bool>

pre: a.is_open(b).

<
a.available(b,ec);
>

size_t

pre: a.is_open(b).

<
constX&u=a;
constX::implementation_type&v=b;
u.available(v,ec);
>

size_t

pre: a.is_open(b).

const typename Protocol::endpoint& u = e;
a.bind(b, u, ec);

<error_code>

pre: a.is_open(b).

a.shutdown(b, h, ec);

<error_code>

pre: a.is_open(b).

a.local_endpoint(b, ec);

Protocol::endpoint

pre: a.is_open(b).

const X& u = a;
const X::implementation_type& v = b;
u.local_endpoint(v, ec);

Protocol::endpoint

pre: a.is_open(b).

a.remote_endpoint(b, ec);

Protocol::endpoint

pre: a.is_open(b).

<
constX&u=a;
constX::implementation_type&v=b;
u.remote_endpoint(v,ec);
>

Protocol::endpoint

pre: a.is_open(b).

const typename Protocol::endpoint& u = e;
a.connect(b, u, ec);

<error_code>

pre: a.is_open(b).

<
consttypenameProtocol::endpoint&u=e;
a.async_connect(b,u,ch);
>

Предварительно:<a.is_open(b)>.
Инициирует асинхронную операцию соединения, которая выполняется через<io_service>объект<a.get_io_service()>и ведет себя в соответствии стребованиями асинхронной операции.



PrevUpHomeNext

Статья Socket service requirements раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:53:02/0.0064260959625244/1