More documentation
g0dil [Mon, 3 Nov 2008 14:17:08 +0000 (14:17 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@943 270642c3-0616-0410-b53a-bc976706d245

Packets/Packet.hh
Packets/PacketImpl.hh
Utils/Logger/SyslogTarget.hh
senf.dict

index 124e8bd..bb2ac90 100644 (file)
@@ -339,7 +339,8 @@ namespace senf {
 
                                              If an annotation is \e not a POD type (more
                                              specifically, if it's constructor or destructor is not
-                                             trivial), the \a Annotation type \e must inherit from
+                                             trivial including base classes and members), the \a
+                                             Annotation type \e must inherit from
                                              senf::ComplexAnnotation. Failing to follow this rule
                                              will result in undefined behavior and will probably
                                              lead to a program crash.
@@ -349,6 +350,7 @@ namespace senf {
                                                  std::string value;
                                              };
                                              \endcode
+                                             (This type is not POD since \c std::string is not POD)
 
                                              \implementation The annotation system is implemented
                                                  quite efficiently since annotations are stored
index 92738a4..4aa2d8c 100644 (file)
 
 namespace senf {
 
+    /** \brief Marker base-class for complex annotations
+
+        This class is used as a base class to mark an annotation type as complex. A complex
+        annotation will have it's constructor/destructor called. Non-complex annotations will not
+        have their constructor called, they will be zero initialized. The destructor of non-complex
+        annotations is never called.
+
+        An annotation must be marked as complex if it is not <a
+        href="http://en.wikipedia.org/wiki/Plain_Old_Data_Structures">POD</a>. Simplified, an
+        annotation must be marked as ComplexAnnotation, if
+
+        \li it has a (user defined) constructor or destructor
+        \li it has any data members which have (user defined) constructors or destructors
+
+        \see \ref packet_usage_annotation
+     */
     struct ComplexAnnotation {};
 
 namespace detail {
index 70cf4e3..3de11ec 100644 (file)
@@ -50,6 +50,17 @@ namespace log {
 
         The default facility is <tt>LOG_USER</tt>.
 
+        The SENF log levels are mapped to syslog levels in the following way:
+
+        <table class="senf fixedcolumn">
+        <tr><td>senf::log::VERBOSE</td>   <td>\c LOG_DEBUG</td></tr>
+        <tr><td>senf::log::NOTICE</td>    <td>\c LOG_INFO</td></tr>
+        <tr><td>senf::log::MESSAGE</td>   <td>\c LOG_NOTICE</td></tr>
+        <tr><td>senf::log::IMPORTANT</td> <td>\c LOG_WARNING</td></tr>
+        <tr><td>senf::log::CRITICAL</td>  <td>\c LOG_CRIT</td></tr>
+        <tr><td>senf::log::FATAL</td>     <td>\c LOG_EMERG</td></tr>
+        </table>
+
         \ingroup targets
      */
     class SyslogTarget 
index b34ca69..807bc7f 100644 (file)
--- a/senf.dict
+++ b/senf.dict
@@ -30,6 +30,7 @@ ArrayParser
 async
 attr
 Augustin
+AUTHPRIV
 autoadd
 autoparse
 autoThrottling
@@ -88,6 +89,7 @@ CPPPATH
 createAfter
 createBefore
 cref
+CRON
 ct
 cti
 CXXFLAGS
@@ -289,6 +291,7 @@ ListPolicy
 localAddr
 localhost
 loopback
+LPR
 mac
 MACAddress
 MACAddressParser
@@ -551,6 +554,8 @@ svnbook
 svnroot
 SyntaxErrorException
 SyntaxException
+syslog
+SyslogTarget
 SystemException
 TapSocketHandle
 td