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 C++ templates and the standard library concepts.
The library implementation at places makes heavy use of advanced template techniques and relies on some very advanced template libraries from Boost. The aim was however for the external interface of the library to be as simple as possible without sacrificing important functionality or adversely impacting the runtime performance.
As already mentioned several times, the library relies on Boost (http://www.boost.org) as a generic library of high quality reusable C++ components. It also makes frequent use of the standard library. It is designed, to integrate well into both libraries and to use the same concepts and ideas.
To introduce the framework and it's general structure, some simple example applications are provided in the SENF repository. Peruse those examples to get a first look at how to make use of SENF.
When building a network Application with SENF, you will use several modules:
The simplest way to get started is: copy the Sniffer application and start to modify it.
Before starting the development, make sure to fulfill the following requirements:
If you want to build the documentation, you additionally need
dia
diagram editor (http://www.gnome.org/projects/dia/) tidy
(http://tidy.sourceforge.net/) xsltproc
XSLT processor (http://xmlsoft.org/XSLT/xsltproc2.html) graphviz
library (http://www.graphviz.org)The library is tested and developed on Linux. It should be relatively simple to port SENF to other POSIX platforms.