mailing lists</a>.
\see \ref usage\n
- \ref example\n
- <a href="http://developer.berlios.de/projects/senf"><b><i>The BerliOS project page</i></b></a>\n
- <a href="http://openfacts.berlios.de/index-en.phtml?title=SENF+Network+Framework"><b><i>The SENF Wiki at BerliOS</i></b></a>
+ \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.
\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
POSIX platforms with a BSD Socket API, the library should be
usable, possibly with some tweaking (except for the Scheduler,
which relies on \c epoll)
-
- \todo
- \li coding standards and patterns
*/
/** \page build Building the framework
repository. Change to your development directory and use the
following subversion command
- <pre class="fragment">
- $ svn checkout http://svn.berlios.de/svnroot/repos/senf/trunk senf</pre>
+ <pre>
+ $ svn checkout http://svn.berlios.de/svnroot/repos/senf/trunk senf
+ </pre>
This will create a new directory \c senf within the current
directory. For further documentation on the use of Subversion, see
To build the library, execute all unit tests and build the Sniffer
test application, use
- <pre class="fragment">
- $ scons
- $ scons all_tests</pre>
+ <pre>
+ $ scons
+ $ scons all_tests
+ </pre>
in the \c senf directory. This assumes, that you want to build the
library with your default gcc and requires the boost libraries to
\li Simple functions to manage daemon processes
\li Standard exception classes
- \li satcom::lib::intrusive_refcount to simplify the implementation
+ \li senf::intrusive_refcount to simplify the implementation
of classes usable with boost::intrusive_ptr
\li boost::bind extensions
\li An interface to the \c g++ demangler integrated with type_info
environment. Included are a number of templates to help
bootstrapping a new project or component.
- \see <a href="../../satscons/doc/html/index.html">SENFSCons
+ \see <a href="../../senfscons/doc/html/index.html">SENFSCons
reference</a>
*/
check out the needed directories from the BerliOS SENF
repository. Change to the 'Foo' directory and type
- <pre class="fragment">
- $ svn propedit svn:externals .</pre>
+ <pre>
+ $ svn propedit svn:externals .
+ </pre>
The default editor (probably VI) will be started with the current
value of the svn:externals property (which will probably be
- empty). Now add all the modules you want plus \c satscons and
+ empty). Now add all the modules you want plus \c senfscons and
possibly \c doclib (if you want to build the documentation). You
will almost certainly neeed the \c Utils module, since all other
modules depend on it.
For example, if you want to use the \c Scheduler and \c Socket
module, the file will look like
- <pre class="fragment">
- satscons http://svn.berlios.de/svnroot/repos/senf/trunk/satscons
- 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</pre>
+ <pre>
+ 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
+ </pre>
exit the editor and the property will be set. Now run
- <pre class="fragment">
- $ svn update</pre>
+ <pre>
+ $ svn update
+ </pre>
and the code will be checked out into the corresponding
directories.
\section new_conf Configuring SENFSCons
To set up the build environment, copy the
- <tt>satscons/SConstruct.template</tt> to <tt>Satscons</tt> in the
- project root. The default setup of this file is to build all
+ <tt>senfscons/SConstruct.template</tt> to <tt>SConstruct</tt> 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.
If you want to use a non-default compiler or the boost library is
not installed in the system directories, you will have to copy
- <tt>satscons/SConfig.template</tt> to <tt>SConfig</tt> in the
+ <tt>senfscons/SConfig.template</tt> to <tt>SConfig</tt> in the
project root and edit it there. You should \e never add \c SConfig
to the repository since it should only contain local settings
necessary for building on your local system. You should therefore
add \c SConfig to the list of files ignored by Subversion in the
project root. In the project root execute
- <pre class="fragment">
- $ svn propedit svn:ignore .</pre>
+ <pre>
+ $ svn propedit svn:ignore .
+ </pre>
and add \c SConfig as a new line to the property.
You should now be able to build your project using
- <pre class="fragment">
- $ scons</pre>
+ <pre>
+ $ scons
+ </pre>
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
- <pre class="fragment">
- $ scons all_tests</pre>
+ <pre>
+ $ scons all_tests
+ </pre>
you can also build only a subdirectory by changing to it and
running
- <pre class="fragment">
- $ scons -u [target]</pre>
-
- \see <a href="../../satscons/doc/html/index.html"><b>SENFSCons reference</b></a> \n
- <a href="http://www.scons.org/documentation.php"><b><i>SCons documentation</i></b></a> \n
- <a href="http://svnbook.red-bean.com"><b><i>Subversion online book</i></b></a> \n
- <a href="http://subversion.tigris.org"><b><i>Subversion Homepage</i></b></a>
+ <pre>
+ $ scons -u [target]
+ </pre>
+
+ \see <a href="../../senfscons/doc/html/index.html">SENFSCons reference</a> \n
+ <a class="ext" href="http://www.scons.org/documentation.php">SCons documentation</a> \n
+ <a class="ext" href="http://svnbook.red-bean.com">Subversion online book</a> \n
+ <a class="ext" href="http://subversion.tigris.org">Subversion Homepage</a>
*/
/** \page overview Introduction to the framework
When building a network Application with SENF, you will use
several modules:
- \li Use the <a href="../../Socket/doc/html/index.html"><b>Socket
- library</b></a> for network communication needs. This library
+ \li Use the <a href="../../Socket/doc/html/index.html">Socket
+ library</a> for network communication needs. This library
includes support for raw and packet sockets to allow low level
network access.
\li Use the <a
- href="../../Scheduler/doc/html/index.html"><b>Scheduler
- library</b></a> to coordinate the asynchronous event
+ href="../../Scheduler/doc/html/index.html">Scheduler
+ library</a> 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 <a
- href="../../Packets/doc/html/index.html"><b>Packets
- library</b></a>. This library will provide efficient and
+ href="../../Packets/doc/html/index.html">Packets
+ library</a>. 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.
- \li Go over the <a href="../../Utils/doc/html/index.html"><b>Utils
- library</b></a>. It contains small helpers to
+ for the most important internet protocols and is highly
+ extensible with new protocols.
+ \li Go over the <a href="../../Utils/doc/html/index.html">Utils
+ library</a>. It contains small helpers to
simplify tasks like daemonization, exception handling,
debugging and so on.