X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Mainpage.dox;h=9438adb871b9d7a784950711a29fb2e560784c83;hb=0232acda50ed45ee5c7014e887267b64e8f1979b;hp=2ded00706362e7ede21c325cbe3b5cb3ccd88508;hpb=032707d24b1059febe83ce56b11fd79df106c6e2;p=senf.git diff --git a/Mainpage.dox b/Mainpage.dox index 2ded007..9438adb 100644 --- a/Mainpage.dox +++ b/Mainpage.dox @@ -14,7 +14,7 @@ \li modular framework design \li utilizing the power of modern C++ \li very low overhead for frequently called members - \li extensible design + \li extensible design \li concise interface \section start Getting started @@ -29,15 +29,12 @@ mailing lists. \see \ref usage\n - \ref example\n - Current status: Cross reference of action points\n - The BerliOS project page\n - The SENF Wiki at BerliOS + \ref example */ /** \page usage Using the SENF framework - The SENF Framework is a collection of lossly coupled + The SENF Framework is a collection of loosely coupled modules. The libraries are heavily object oriented and template based. For compatibility reasons, the libraries are therefore built together with every project making use of the framework. @@ -65,6 +62,8 @@ \li Doxygen (http://www.doxygen.org) \li The \c dia diagram editor (http://www.gnome.org/projects/dia/) + \li HTML \c tidy (http://tidy.sourceforge.net/) + \li The \c xsltproc XSLT processor (http://xmlsoft.org/XSLT/xsltproc2.html) The library is only tested with gcc-3.4 and 4.0 on Linux. On other @@ -74,7 +73,7 @@ */ /** \page build Building the framework - + This procedure will test building the complete framework including the unit tests and the Sniffer test application. This build is \e not needed to use the framework since every project @@ -84,7 +83,7 @@ continue to setup your own project using SENF. \see \ref components \n - \ref svnsetup + \ref svnsetup \section checkout Getting the code @@ -92,8 +91,9 @@ repository. Change to your development directory and use the following subversion command -
-      $ svn checkout http://svn.berlios.de/svnroot/repos/senf/trunk senf
+
+    $ svn checkout http://svn.berlios.de/svnroot/repos/senf/trunk senf
+    
This will create a new directory \c senf within the current directory. For further documentation on the use of Subversion, see @@ -107,9 +107,10 @@ To build the library, execute all unit tests and build the Sniffer test application, use -
-      $ scons
-      $ scons all_tests
+
+    $ scons
+    $ scons all_tests
+    
in the \c senf directory. This assumes, that you want to build the library with your default gcc and requires the boost libraries to @@ -128,7 +129,7 @@ \see \ref build \n \ref svnsetup - + \section libSocket libSocket: C++ abstraction of the BSD socket API This library provides a high performance and object oriented @@ -167,13 +168,13 @@ miscellaneous tools and utilities. We have \li Simple functions to manage daemon processes - \li Standard exception classes + \li Standard exception classes \li senf::intrusive_refcount to simplify the implementation - of classes usable with boost::intrusive_ptr + of classes usable with boost::intrusive_ptr \li boost::bind extensions - \li An interface to the \c g++ demangler integrated with type_info + \li An interface to the \c g++ demangler integrated with type_info \li Typedefs and rudimentary methods to simplify handling - high-resolution time values + high-resolution time values \see libUtils API reference @@ -191,7 +192,7 @@ */ /** \page svnsetup Setting up a new project using SENF - + The preferred way to use SENF in a new project is to rely on Subversion and make use of the SENFSCons build environment. The following sections will describe, how this setup works. @@ -220,9 +221,10 @@ \c svn:externals. This will instruct \c svn to auutomatically check out the needed directories from the BerliOS SENF repository. Change to the 'Foo' directory and type - -
-        $ svn propedit svn:externals .
+ +
+    $ svn propedit svn:externals .
+    
The default editor (probably VI) will be started with the current value of the svn:externals property (which will probably be @@ -234,25 +236,27 @@ For example, if you want to use the \c Scheduler and \c Socket module, the file will look like -
-        senfscons http://svn.berlios.de/svnroot/repos/senf/trunk/senfscons
-        Utils http://svn.berlios.de/svnroot/repos/senf/trunk/Utils
-        Scheduler http://svn.berlios.de/svnroot/repos/senf/trunk/Scheduler
-        Socket http://svn.berlios.de/svnroot/repos/senf/trunk/Socket
+
+    senfscons http://svn.berlios.de/svnroot/repos/senf/trunk/senfscons
+    Utils http://svn.berlios.de/svnroot/repos/senf/trunk/Utils
+    Scheduler http://svn.berlios.de/svnroot/repos/senf/trunk/Scheduler
+    Socket http://svn.berlios.de/svnroot/repos/senf/trunk/Socket
+    
exit the editor and the property will be set. Now run -
-        $ svn update
+
+    $ svn update
+    
and the code will be checked out into the corresponding - directories. + directories. \section new_conf Configuring SENFSCons To set up the build environment, copy the - senfscons/SConstruct.template to Satscons in the - project root. The default setup of this file is to build all + senfscons/SConstruct.template to SConstruct in + the project root. The default setup of this file is to build all subdirectories (using the \c SConscript files of the subdirectories). You can add additonal global targets and configuration parameters here. @@ -266,8 +270,9 @@ add \c SConfig to the list of files ignored by Subversion in the project root. In the project root execute -
-      $ svn propedit svn:ignore .
+
+    $ svn propedit svn:ignore .
+    
and add \c SConfig as a new line to the property. @@ -275,21 +280,24 @@ You should now be able to build your project using -
-      $ scons
+
+    $ scons
+    
If you have not changed the \c SConstruct file, this will build all modules you have importet into your project. To build and execute the unit tests, use -
-      $ scons all_tests
+
+    $ scons all_tests
+    
you can also build only a subdirectory by changing to it and running - -
-      $ scons -u [target]
+ +
+    $ scons -u [target]
+    
\see SENFSCons reference \n SCons documentation \n @@ -298,7 +306,7 @@ */ /** \page overview Introduction to the framework - + The SENF framework is relatively complex and makes use of advanced features of the C++ language. To make the most efficient use of the framework, you should have at least a basic understanding of @@ -323,37 +331,37 @@ example application is provided in the SENF repository in the \c Sniffer module. Peruse this example to get a first look at how to make use of SENF. - + When building a network Application with SENF, you will use several modules: - + \li Use the Socket - library for network communication needs. This library - includes support for raw and packet sockets to allow low level - network access. + library for network communication needs. This library + includes support for raw and packet sockets to allow low level + network access. \li Use the Scheduler - library to coordinate the asynchronous event - processing. This drastically reduces the number of threads - needed in your application and will greatly enhance the overall - responsiveness. + href="../../Scheduler/doc/html/index.html">Scheduler + library to coordinate the asynchronous event + processing. This drastically reduces the number of threads + needed in your application and will greatly enhance the overall + responsiveness. \li To interpret low level network packets, use the Packets - library. This library will provide efficient and - convenient access to all protocol fields. It supports parsing as - well as modifying and creating packets. It has default support - for the most important TCP protocols and is highly extensible - with new protocols. + href="../../Packets/doc/html/index.html">Packets + library. This library will provide efficient and + convenient access to all protocol fields. It supports parsing as + well as modifying and creating packets. It has default support + for the most important internet protocols and is highly + extensible with new protocols. \li Go over the Utils - library. It contains small helpers to - simplify tasks like daemonization, exception handling, + library. It contains small helpers to + simplify tasks like daemonization, exception handling, debugging and so on. The simplest way to get started is: copy the Sniffer application and start to modify it. \see \ref example \n - \ref components \n + \ref components \n \ref svnsetup \n \ref build */ @@ -361,8 +369,10 @@ // Local Variables: // mode: c++ +// fill-column: 100 +// c-file-style: "senf" +// indent-tabs-mode: nil +// ispell-local-dictionary: "american" // mode: flyspell // mode: auto-fill -// ispell-local-dictionary: "american" // End: -