diff --git a/mrw/mrw.hpp.in b/mrw/mrw.hpp.in
index 716a3e1..42a7bad 100644
--- a/mrw/mrw.hpp.in
+++ b/mrw/mrw.hpp.in
@@ -39,22 +39,30 @@
See the "Related Pages".
- - @ref readme "The Readme, a Short Overview"
- - @ref download "Download, Dependencies and Simple Installation"
- - @ref usage "Usage of the Library: Include and Link"
- - @ref threads "Thread Safety"
- - @ref libversion "Library Versioning"
- - @ref license "License Information (LGPL)"
- - @ref install "Detailed Compilation and Installation Information"
- - @ref news "Breaking News, What's New?"
- - @ref changes "Change Log"
+ - @ref readme
+ - @ref download
+ - @ref usage
+ - @ref threads
+ - @ref libversion
+ - @ref license
+ - @ref install
+ - @ref news
+ - @ref changes
*/
-/** @page download Download, Detailed und Simple Installation
+/** @page download Download and Installation
Download this version from here:
- Requirements:
- - No special requirements for the binary package!
+ - Boost thread library for multi threading:
+ http://boost.org
+ - log4cxx for automated tracing and function traces:
+ - http://logging.apache.org/log4cxx
+ - RPM: http://marc.waeckerlin.org/mrw-c++/log4cxx-0.9.7-1.i386.rpm
+ - @ref mrw::StackTrace requires:
+ - the GNU Binutils
+ - either GNU Compiler gcc or GNU C library glibc
+ - runs better on: either Linux or Solaris
- Binary
- Binary RPM Packages (built on i586/SuSE):
- http://marc.waeckerlin.org/@PACKAGENAME@/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@-1.i586.rpm
@@ -65,6 +73,7 @@
rpm -Uvh @PACKAGENAME@-devel-@MAJOR@.@MINOR@.@LEAST@-1.i586.rpm
- Source
- Requirements to build from source:
+ - boost: http://boost.org
- cppunit: http://cppunit.sf.net
- log4cxx: http://logging.apache.org/log4cxx
- doxygen: http://doxygen.org
@@ -93,27 +102,49 @@
#include
@endverbatim
- All classes are in the mrw namespace.
+ All classes are in the @c mrw namespace.
if you want the mrw::StackTrace to evaluate file and line numbers,
then you need to compile with debug information enabled, thats
option @c -g.
- Link to the library with option @c -lmrw, e.g.:
+ Link to the library with option @c -lmrw (or @c -lmrw-mt if your
+ program is multi threaded), e.g.:
@verbatim
g++ -g -o myprogram myprogram.cpp -lmrw
@endverbatim
- For the @ref AutoTools "unexpected handler" you need to link with
- @c -lmrwexcstderr or @c -lmrwexclog4cxx.
-*/
+ For the @ref AutoTools "unexpected handler" you need to link to
+ @c -lmrwexcstderr or @c -lmrwexclog4cxx (or @c -lmrwexcstderr-mt
+ or @c -lmrwexclog4cxx-mt if your program is multi threaded).
+
+ For the @ref AutoFunctionTrace "automated function trace" you need
+ to link to @c -lmrwautofunctiontracelog4cxx (or @c
+ -lmrwautofunctiontracelog4cxx-mt if your program is multi
+ threaded). In addition, you must compile and link your program
+ with the GNU compiler specific option @c -finstrument-functions */
/** @page threads Thread Safety
+ To enable thread safety, you must link to @c libmrw-mt instead of
+ @c libmrw. That means, your link option is: @c -lmrw-mt
+
+ Different instances of classes can run in different threads, but
+ instances of classes can not be shared between different threads.
+
All classes are not thread safe, that means they should either
always be accessed from the same thread, or you are responsible
- for locking. If you need thread safety as a feature, please send
+ for locking.
+
+ All methods are threads safe, that means, they can be called at
+ the same time from different threads. But not on the same object.
+
+ This means: One instance should only be used within one single
+ thread. Different instances of the same class can be accessed
+ simultaneousely in different threads.
+
+ If you need more thread safety as a feature, please send
me an email and ask me for it (you find the address in the package
or on my personal homepage: http://marc.waeckerlin.org).
*/