Todo List

Class senf::ClientSocketHandle< SPolicy >
Move all not template-parameter dependent code into a non-template base class

Class senf::DVBDemuxSocketProtocol
Document me!

Class senf::MulticastSocketProtocol
implement complete new multicast API from RFC3678 (as far as supported by linux)

Member senf::ServerSocketHandle::listen (unsigned backlog=0)
This is very protocol specific, I don't want it in the policy interface. Especially the backlog argument seems quite protocol specific to me. However, we cannot listen() before we bind() so listen() cannot reside in the constructor. We need to find a good solution here.

Class senf::SocketHandle< SPolicy >
Create a SocketHandleBase class and move some non-Policy dependent code there

Member senf::SocketHandle::SocketHandle (FileHandle other, bool isChecked)
Answer, why the heck I need the isChecked parameter ??

File ConnectedUDPSocketHandle.hh
Implement possibly non-blocking connect and SO_ERROR in the protocol interface

File INetSocketProtocol.hh
what about OOB data?

File INetSocketProtocol.hh
Implement IP_RECVERR / MSG_ERRQUEUE. This should be placed into an additional protocol facet since IP_RECVERR is only valid for SOCK_DGRAM (UDP) and not SOCK_STREAM (TCP) sockets

File TCPSocketHandle.hh
Implement possibly non-blocking connect and SO_ERROR in the protocol interface

File UDPSocketHandle.hh
Implement possibly non-blocking connect and SO_ERROR in the protocol interface

File ReadWritePolicy.hh
ReadWritePolicy.test.cc