Catch senf::Exception instead of senf::SystemException
[senf.git] / Socket / Mainpage.dox
index cf04807..9a0c847 100644 (file)
@@ -1,3 +1,25 @@
+// $Id$
+//
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
+//     Stefan Bund <g0dil@berlios.de>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the
+// Free Software Foundation, Inc.,
+// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
 namespace senf {
 
 /** \mainpage The SENF Socket Library
@@ -128,7 +150,7 @@ namespace senf {
     ProtocolClientSocketHandle or ProtocolServerSocketHandle. You will probably not use these
     templates as is but use proper typedefs (for example TCPv4ClientSocketHandle or
     PacketSocketHandle). The documentation for these socket handles are found in the protocol class
-    (for example TCPv4SocketProtocol or PacketProtocol).
+    (for example TCPv4SocketProtocol or PacketSocketProtocol).
 
     \section usage_reusable Writing Reusable Components
 
@@ -188,8 +210,8 @@ namespace senf {
     After the protocol class has been defined, you will probably want to provide typedefs for the
     new protocol sockets. If the new protocol is connection oriented, this will be like
     \code
-    typedef ProtocolClientSocketHandle<MyProtocolClass> MyProtocolClientSocketHandle;
-    typedef ProtocolServerSocketHandle<MyProtocolClass> MyProtocolServerSocketHandle;
+    typedef ProtocolClientSocketHandle<MySocketProtocolClass> MySocketProtocolClientSocketHandle;
+    typedef ProtocolServerSocketHandle<MySocketProtocolClass> MySocketProtocolServerSocketHandle;
     \endcode
 
     \section extend_policy Extending the policy framework
@@ -221,45 +243,52 @@ namespace senf {
     \see policy_group
  */
 
-/** \page glossary Glossary
-
-    <table class="glossary">
-
-    <tr><td>policy</td> <td>collection of policy classes, one for each policy axis, instantiation of
-    the SocketPolicy template</td></tr>
-
-    <tr><td>policy axis</td> <td>one aspect defined in the socket policy, typedef and member of the
-    SocketPolicy template</td></tr>
-
-    <tr><td>policy class</td> <td>implementation of a single policy axis, class derived from the
-    axis base class</td></tr>
-
-    <tr><td>complete policy</td> <td>socket policy where each axis is specified completely</td></tr>
-
-    <tr><td>incomplete policy</td> <td>socket policy, where at least one axis is not fully
-    specified</td></tr>
-
-    <tr><td>protocol class</td> <td>definition of a protocol as a class, class inheriting from
-    ConcreteSocketProtocol.</td></tr>
-
-    <tr><td>protocol facet</td> <td>a class providing some subset of the protocol interface, class
-    derived from SocketProtocol but not from ConcreteSocketProtocol</td></tr>
-
-    <tr><td>policy interface</td> <td>interface directly provided by
-    ClientSocketHandle/ServerSocketHandle and defined through the policy</td>
-
-    <tr><td>protocol interface</td> <td>interface provided by the protocol class and accessible via
-    the ProtocolClientSocketHandle::protocol()/ProtocolServerSocketHandle::protocol()
-    member</td></tr>
-
-    </table>
- */
-
 /** \page implementation Implementation notes
 
     \section class_diagram Class Diagram
 
-    \image html SocketLibrary-classes.png
+    <div class="diamap" name="SocketLibrary-classes">
+    <span coords="472,667,559,689">\ref IPv4Protocol</span>
+    <span coords="29,773,139,794">\ref WritePolicyBase</span>
+    <span coords="97,939,238,960">\ref SocketBufferingPolicy</span>
+    <span coords="97,390,223,411">\ref NoAddressingPolicy</span>
+    <span coords="97,736,217,758">\ref NotReadablePolicy</span>
+    <span coords="418,609,613,631">\ref AdressableBSDSocketProtocol</span>
+    <span coords="18,895,153,917">\ref BufferingPolicyBase</span>
+    <span coords="22,426,148,447">\ref FramingPolicyBase</span>
+    <span coords="409,0,495,36">\ref FileBody</span>
+    <span coords="97,469,249,491">\ref DatagramFramingPolicy</span>
+    <span coords="97,317,240,339">\ref INet6AddressingPolicy</span>
+    <span coords="453,544,578,566">\ref BSDSocketProtocol</span>
+    <span coords="97,281,240,303">\ref INet4AddressingPolicy</span>
+    <span coords="452,177,706,209">\ref ProtocolServerSocketHandle</span>
+    <span coords="412,259,486,281">\ref PolicyBase</span>
+    <span coords="474,768,557,790">\ref TCPProtocol</span>
+    <span coords="97,700,197,722">\ref ReadablePolicy</span>
+    <span coords="342,249,654,411">\ref SocketPolicy</span>
+    <span coords="0,541,173,563">\ref CommunicationPolicyBase</span>
+    <span coords="640,859,736,881">\ref TCPv6Protocol</span>
+    <span coords="353,428,453,465">\ref SocketProtocol</span>
+    <span coords="97,585,297,606">\ref ConnectedCommunicationPolicy</span>
+    <span coords="172,177,420,209">\ref ProtocolClientSocketHandle</span>
+    <span coords="472,718,559,739">\ref IPv6Protocol</span>
+    <span coords="97,816,192,838">\ref WritablePolicy</span>
+    <span coords="383,62,520,98">\ref SocketBody</span>
+    <span coords="698,888,798,910">\ref PacketProtocol</span>
+    <span coords="97,852,213,874">\ref NotWritablePolicy</span>
+    <span coords="31,657,138,679">\ref ReadPolicyBase</span>
+    <span coords="213,60,369,91">\ref SocketHandle</span>
+    <span coords="197,126,385,158">\ref ClientSocketHandle</span>
+    <span coords="97,621,311,642">\ref UnconnectedCommunicationPolicy</span>
+    <span coords="567,480,786,526">\ref ConcreteSocketProtocol</span>
+    <span coords="582,830,678,852">\ref TCPv4Protocol</span>
+    <span coords="97,505,234,527">\ref StreamFramingPolicy</span>
+    <span coords="13,238,161,259">\ref AddressingPolicyBase</span>
+    <span coords="224,0,294,36">\ref FileHandle</span>
+    <span coords="97,353,222,375">\ref LLAddressingPolicy</span>
+    <span coords="476,126,671,158">\ref ServerSocketHandle</span>
+    </div>
+    \htmlonly <img src="SocketLibrary-classes.png" border="0" alt="SocketLibrary-classes" usemap="#SocketLibrary-classes"> \endhtmlonly
 
     \section impl_notes Arbitrary Implementation Notes