X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FSocket%2FMainpage.dox;h=7035c9fb291a8570d47e2efa3321167edc032a12;hb=f792c278aba0cc2080591d393fff2d8cdca9b95d;hp=b81952175e113fc5f1ed6be69c05830eefbdb908;hpb=4d7356cbd92801bc0c4bec27fffe3b0024807185;p=senf.git diff --git a/senf/Socket/Mainpage.dox b/senf/Socket/Mainpage.dox index b819521..7035c9f 100644 --- a/senf/Socket/Mainpage.dox +++ b/senf/Socket/Mainpage.dox @@ -25,14 +25,14 @@ namespace senf { /** \mainpage The SENF Socket Library The Socket library provides a high level and object oriented abstraction based on the BSD socket - API (but not limited to it). - + API (but not limited to it). + \autotoc - + \section socket_intro Introduction \seechapter \ref structure \n \seechapter \ref usage - + The socket library abstraction is based on several concepts: \li The basic visible interface is a \link handle_group handle object\endlink @@ -40,7 +40,7 @@ namespace senf { it's functionality \li The rest of the socket API is accessible using a classic inheritance hierarchy of \link protocol_group protocol classes \endlink - \li There is a family of auxilliary \ref addr_group to supplement the socket library + \li There is a family of auxiliary \ref addr_group to supplement the socket library \section socket_handle Socket Handles @@ -54,7 +54,7 @@ namespace senf { symbol). However, more generic kinds of handles can be defined for more generic functionality. - + \section socket_policy The Policy interface \seechapter \ref policy_group @@ -62,18 +62,18 @@ namespace senf { provides. This offers highly efficient access to the most important socket functions (like reading and writing). The policy interface however is a \e static, non-polymorphic interface. - + \section socket_protocol The Protocol interface \seechapter \ref protocol_group - + The protocol interface provides further protocol dependent and (possibly) polymorphic access to - further socket funcitonality. On the other hand, this type of interface is not as flexible, + further socket functionality. On the other hand, this type of interface is not as flexible, generic and fast as the policy interface. - \section socket_addr Auxilliary Addressing classes + \section socket_addr Auxiliary Addressing classes \seechapter \ref addr_group - + To supplement the socket library, there are a multitude of addressing classes. These come in two basic groups: \li Protocol specific addresses (e.g. INet4Address, MACAddress) @@ -81,8 +81,8 @@ namespace senf { Whereas the protocol specific addresses are custom value types which represent their corresponding low-level address, the socket addresses are based on the corresponding \c sockaddr - structures. - + structures. + \section socket_further Going further \seechapter \ref extend \n \seechapter \ref implementation @@ -122,7 +122,7 @@ namespace senf { reducing the policy interface to a minimal sensible subset of the complete API. \section over_policy The Policy Interface - + The policy of a Socket consists of several parts, called policy axis. Each axis corresponds to one specific interface aspect of the Socket. The exact meaning of the policy axis are defined elsewhere (see \ref policy_group). The Protocol will always provide a complete set @@ -138,7 +138,7 @@ namespace senf { defined match those defined in that Socket's protocol. Using such a generic handle decouples the implementation parts using this handle from the other socket aspects (e.g. you may define a generic socket handle for TCP based communication leaving the addressingPolicy undefined which - makes your code independent of the type of addressing, IPv4 or IPv6). + makes your code independent of the type of addressing, IPv4 or IPv6). This can be described as generalized compile-time polymorphism: A base class reference to some derived class will only give access to a reduced interface (the base class interface) of a @@ -164,7 +164,7 @@ namespace senf { of the socket (which generic handles don't). This allows to access to the complete protocol interface. - \section over_impl Implementation of the Socket Libarary Structure + \section over_impl Implementation of the Socket Library Structure In the Implementation, the socket policy is identified by an instance of the senf::SocketPolicy template. The Socket representation is internally represented in a senf::SocketBody which is not @@ -201,7 +201,7 @@ namespace senf { To make your code more flexible, you should not pass around your socket in this form. Most of your code will be using only a small subset of the ProtocolClientSocketHandle or ProtocolServerSocketHandle API. - + If instead of using the fully specified handle type you use a more incomplete type, you allow your code to be used with all sockets which fulfill the minimal requirements of your code. These types are based on the ClientSocketHandle and ServerSocketHandle templates which implement the