poold: Add archipelago::System::set_system function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::System::read_pid function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::System::check_pid function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::System::write_pid function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::System::remove_pid function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Introduce archipelago::Socket class

This class provides an abstraction for the named stream-oriented
UNIX domain socket by exposing the following functionality:

* create()
* bind()
* listen()
* accept()
* read()
* write()
* setnonblocking()

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Socket constructor

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Socket destructor

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Override archipelago::Socket operators

Override '<', '>' and '==' operators and provide
strict ordering at all times.

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Socket::create function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Socket::bind function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Socket::listen function

The default backlog value is 5.

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Socket::accept function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Socket::write function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Socket::read function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Socket::setnonblocking function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Introduce archipelago::Epoll class

This class provides an abstraction for the I/O event notification
facility based on epoll() and exposes the following functionality:

* add_socket()
* add_fd()
* rm_socket()
* rm_fd()
* set_socket_pollin()
* reset_socket_pollin()
* set_socket_pollout()
* reset_socket_pollout()
* set_fd_pollin()
* reset_fd_pollin()
* wait()

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Epoll constructor

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Epoll destructor

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>
poold: Add archipelago::Epoll::add_fd function

Signed-off-by: Chrysostomos Nanakos <cnanakos@grnet.gr>