asiolink.dox 1.83 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
// Copyright (C) 2020 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

/**
 @page libasiolink libkea-asiolink - Kea Boost ASIO Library

@section asiolinkUtilities Boost ASIO Utilities

The asiolink library (libkea-asiolink) encapsulates Boost ASIO tools:

 - addr utilities: prefix (IOAddress and length pair) tools.

 - dummy I/O callback.

 - interval timer.

 - I/O acceptor: asynchronous server ASIO socket (base class).

 - I/O address: ASIO IP address.

 - I/O ASIO socket (derived from I/O socket).

 - I/O endpoint: ASIO IP endpoint (abstraction of a socket address).

 - I/O error: @c isc::asiolink::IOError exception declaration.

 - I/O service: ASIO I/O service (named I/O context in recent versions).

 - I/O socket: ASIO I/O socket base class.

 - TCP acceptor: TCP derivation of I/O acceptor.

 - TCP endpoint: TCP derivation of I/O endpoint.

 - TCP socket: TCP derivation of I/O socket.

 - UDP endpoint: UDP derivation of I/O endpoint.

 - UDP socket: UDP derivation of I/O socket.

 - Unix domain socket: Unix socket (AF_LOCAL) derivation of I/O socket.

 - Unix domain acceptor: Unix socket (AF_LOCAL) derivation of I/O acceptor.

 - Unix domain endpoint: Unix socket (AF_LOCAL) derivation of I/O endpoint.

@section asiolinkMTConsiderations Multi-Threading Consideration for Boost ASIO Utilities

By default Boost ASIO utilities are not thread safe even Boost ASIO tools
themselves are. When there is no state and the encapsulation is direct
the thread safety property is preserved. Exceptions to the by default
no thread safe are:

 - I/O address (direct encapsulation) is thread safe.

 - interval timer setup and cancel methods are thread safe.

*/