VoiceMan
|
Main class to manage client connections. More...
Public Member Functions | |
MainLoop (const ClientFactory &clientFactory, ClientList &clients, size_t maxClients, AbstractClientDataHandler &clientDataHandler, AbstractSignalHandler &signalHandler, AbstractExecutorOutput &executorOutput, bool &terminationFlag) | |
The constructor. | |
void | run (const SocketList &sockets, sigset_t *sigMask) |
The main method to execute loop and handle data. |
This class manages clients connections and handles any data received from clients. It contains main pselect() system call to wait new data or new connections. This class uses list of currently accepted clients but all clients must be closed explicitly on this classs destruction. It is not recommended to have two instances of this class because of behavior may depend on process signal handling. Also this class handles system signal checking and processing data received back from the executor process.
MainLoop::MainLoop | ( | const ClientFactory & | clientFactory, |
ClientList & | clients, | ||
size_t | maxClients, | ||
AbstractClientDataHandler & | clientDataHandler, | ||
AbstractSignalHandler & | signalHandler, | ||
AbstractExecutorOutput & | executorOutput, | ||
bool & | terminationFlag | ||
) | [inline] |
[in] | clientFactory | The reference to a factory for new client object creation |
[in] | clients | The list to store connected client set |
[in] | maxClients | The maximum number of accepted clients (0 - not limited) |
[in] | clientDataHandler | The reference to a object to handle data read from client connection |
[in] | signalHandler | The reference to a object to handle registered signals |
[in] | executorOutput | The reference to an object to provide information about executor output streams |
[in] | terminationFlag | The reference to termination flag variable |
void MainLoop::run | ( | const SocketList & | sockets, |
sigset_t * | sigMask | ||
) |
Use this method to launch main loop and start client accepting.
[in] | sockets | The list of sockets objects to listen |
[in] | sigMask | The sigmal mask to operate with |