/** \defgroup protocol_group The Protocol Classes
- \htmlonly
- <map name="protocols">
- <area shape="rect" alt="SocketPolicy" href="structsenf_1_1SocketPolicy.html" title="SocketPolicy" coords="416,50,536,68" />
- <area shape="rect" alt="ConcreteSocketProtocol" href="classsenf_1_1ConcreteSocketProtocol.html" title="ConcreteSocketProtocol" coords="268,65,456,88" />
- <area shape="rect" alt="SocketProtocol" href="classsenf_1_1SocketProtocol.html" title="SocketProtocol" coords="1,2,120,26" />
- <area shape="rect" alt="BSDSocketProtocol" href="classsenf_1_1BSDSocketProtocol.html" title="BSDSocketProtocol" coords="124,118,276,143" />
- <area shape="rect" alt="AddressableBSDSocketProtocol" href="classsenf_1_1AddressableBSDSocketProtocol.html" title="AddressableBSDSocketProtocol" coords="82,200,314,224" />
- <area shape="rect" alt="IPv4Protocol" href="classsenf_1_1IPv4Protocol.html" title="IPv4Protocol" coords="149,272,252,296" />
- <area shape="rect" alt="IPv6Protocol" href="classsenf_1_1IPv6Protocol.html" title="IPv6Protocol" coords="149,335,251,359" />
- <area shape="rect" alt="TCPProtocol" href="classsenf_1_1TCPProtocol.html" title="TCPProtocol" coords="151,398,248,420" />
- <area shape="rect" alt="TCPv4SocketProtocol" href="classsenf_1_1TCPv4SocketProtocol.html" title="TCPv4SocketProtocol" coords="288,471,405,494" />
- <area shape="rect" alt="TCPv6SocketProtocol" href="classsenf_1_1TCPv6SocketProtocol.html" title="TCPv6SocketProtocol" coords="424,470,540,494" />
- <area shape="rect" alt="PacketProtocol" href="classsenf_1_1PacketProtocol.html" title="PacketProtocol" coords="560,469,680,495" />
- </map>
- <img src="Protocols.png" border="0" alt="Protocols" usemap="#protocols">
- \endhtmlonly
+ <div class="diamap" name="Protocols">
+ <span coords="0,0,118,25">\ref SocketProtocol</span>
+ <span coords="139,381,279,407">\ref UNSocketProtocol</span>
+ <span coords="527,412,693,438">\ref PacketSocketProtocol</span>
+ <span coords="214,49,471,86">\ref ConcreteSocketProtocol</span>
+ <span coords="135,112,283,137">\ref BSDSocketProtocol</span>
+ <span coords="114,258,304,284">\ref DatagramSocketProtocol</span>
+ <span coords="136,320,281,346">\ref TCPSocketProtocol</span>
+ <span coords="395,446,604,472">\ref UNDatagramSocketProtocol</span>
+ <span coords="89,189,329,215">\ref AddressableBSDSocketProtocol</span>
+ <span coords="282,481,444,507">\ref TCPv4SocketProtocol</span>
+ </div>
+ \htmlonly <img src="Protocols.png" border="0" alt="Protocols" usemap="#Protocols"> \endhtmlonly
The socket handle classes and templates only implement the most important socket API methods
using the policy framework. To access the complete API, the protocol interface is
A protocol implementation may define the protocol interface directly. It can also
(additionally) make use of multiple inheritance to combine a set of protocol facets into a
specific protocol implementation (i.e. TCPv4SocketProtocol inherits from
- ConcreteSocketProtocol and from the protocol facets IPv4Protocol, TCPProtocol,
+ ConcreteSocketProtocol and from the protocol facets IPv4SocketProtocol, TCPSocketProtocol,
BSDSocketProtocol and AddressableBSDSocketProtocol). The protocol facets are not concrete
protocols themselves, they are combined to build concrete protocols. This structure will
remove a lot of code duplication. It is important to ensure, that the protocol facets do not