view doc/doxygen/page-overview-transports.cpp @ 795:d42e8415e477

tests: fix test-stream
author David Demelier <markand@malikania.fr>
date Sun, 11 Nov 2018 14:53:14 +0100
parents 17367b6a99b4
children
line wrap: on
line source

/**
 * \page overview-transports Transports
 * \brief Transports overview
 *
 * The transports feature is dedicated into irccd to irccdctl dialogs. It
 * allows:
 *
 * - Requests from irccdctl,
 * - Events from irccd to all irccdctl,
 * - Different type of protocols (TCP/IP, local and TLS).
 *
 * It consists of different parts.
 *
 * ~~~
 * +-------------------+         +---------+
 * |                   |    0..* |         |
 * | transport_service +---------+ command |
 * |                   |         |         |
 * +---------+---------+         +----^----+
 *           |                        |
 *           |                        | executes
 *           | 0..*                   |
 * +---------+--------+          +----+-------------+
 * |                  | 1   0..* |                  |
 * | transport_server +----------+ transport_client |
 * |                  |          |                  |
 * +------------------+          +------------------+
 * ~~~
 *
 * ## The transport_service class
 *
 * This class owns several transport_server, it will wait for a new client in
 * each of those servers.
 *
 * It's also dedicated to broadcast messages to all connected transport_clients.
 *
 * ## The transport_server class
 *
 * This class has only one purpose, to accept a new client. It's abstract and
 * the underlying implementation is responsible of doing its own operation.
 *
 * ## The transport_client class
 *
 * This stateful class represent a direct connection to a irccdctl client.
 *
 * It does authentication if required and process input messages. It does not
 * call commands directly but dispatch that to the transport_service.
 *
 * ## The command class
 *
 * This abstract class defines an operation to perform.
 */