C++ Library containing a lot of needful things: Stack Trace, Command Line Parser, Resource Handling, Configuration Files, Unix Command Execution, Directories, Regular Expressions, Tokenizer, Function Trace, Standard Extensions.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

189 lines
7.0 KiB

/** @mainpage
The official homepage is on:
- http://marc.waeckerlin.org/@PACKAGENAME@/index.html
All features are listed on the <a
href="modules.html">"Modules"</a> page.
@section intro Introduction
Featureful C++ Library containing a lot of needful
things. Everything, I often need, but it's missing in C++ standard
libraries and other common 3rd party libraries, such as <a href="">log4cxx</a>,
cppunit and boost.
I have paid attention to define simple and a nice to use
interfaces. The library makes use of object orientation, operator
overload and templates, where it makes sense. The library passes
several module tests before each delivery. It is therefore stable
and tested.
@section support Supported Platforms
The library is generic UNIX, but should also work on Windows. It
is sporadically tested on Windows in Cygwin. Stack trace works on
Linux only, it could theoretically work on Sun Solaris too, but
this is untested. Stack trace without symbol resolution, just
getting the raw addresses, only depends on GNU gcc and should work
on all platforms. Feedback is welcome!
@section features Missing a Feature, Found a Bug?
You are missing a feature, or an implementation is too incomplete
for the purpose you need it? Or you even found a bug? Just ask me
and I'll try to help you! My email address is in the file AUTHORS
and on my website: http://marc.waeckerlin.org
@section moreinfo Additional Information
See the <a href="pages.html">"Related Pages"</a>.
- @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"
*/
/** @page download Download, Detailed und Simple Installation
Download this version from here:
- Requirements:
- No special requirements for the binary package!
- Binary
- Binary RPM Packages (built on i586/SuSE):
- http://marc.waeckerlin.org/@PACKAGENAME@/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@-1.i586.rpm
- Installation:<br>
<code>rpm -Uvh @PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@-1.i586.rpm</code>
- http://marc.waeckerlin.org/@PACKAGENAME@/@PACKAGENAME@-devel-@MAJOR@.@MINOR@.@LEAST@-1.i586.rpm
- Installation:<br>
<code>rpm -Uvh @PACKAGENAME@-devel-@MAJOR@.@MINOR@.@LEAST@-1.i586.rpm</code>
- Source
- Requirements to build from source:
- cppunit: http://cppunit.sf.net
- log4cxx: http://logging.apache.org/log4cxx
- doxygen: http://doxygen.org
- graphviz: http://www.research.att.com/sw/tools/graphviz
- GNU g++, GNU make, GNU autotools: http://gnu.org
- Source TAR-Ball:
- http://marc.waeckerlin.org/@PACKAGENAME@/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.tar.gz
- Installation:
-# <code>tar xzf @PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.tar.gz</code>
-# <code>cd @PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@</code>
-# <code>./configure && make all install</code>
- Source RPM Packages:
- http://marc.waeckerlin.org/@PACKAGENAME@/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@-1.src.rpm
- Installation:<br>
<code>sudo rpmbuild --rebuild @PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@-1.src.rpm</code>
Download this documentation in PDF:
- http://marc.waeckerlin.org/@PACKAGENAME@/@PACKAGENAME@-@MAJOR@.@MINOR@.@LEAST@.pdf
*/
/** @page usage Usage of the Library: Include and Link
Include the headers you need with prefix @c mrw, e.g.:
@verbatim
#include <mrw/stacktrace.hpp>
@endverbatim
All classes are in the 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.:
@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.
*/
/** @page threads Thread Safety
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
me an email and ask me for it (you find the address in the package
or on my personal homepage: http://marc.waeckerlin.org).
*/
/** @page libversion Library Versioning
The library and the package have the same version number. This
means, if you for example install the package versioned
mrw-c++-2.6.4.tar.gz, then it builds a shared library of the same
version, named libmrw.so.2.6.4. The naming is
version=MAJOR.MINOR.LEAST. What do the numbers mean:
<dl>
<dt>MAJOR</dt>
<dd>If the major number is increased, then the backwards
compatibility was broken. Either there was an incompatible
change in the implementation, or in the interface, e.g. a change
in method parameters, or even parts of the library have been
removed.</dd>
<dt>MINOR</dt>
<dd>If the minor number changes, then it remains backward
compatible. Either there was a minor change in the
implementation or behavior of some features, a bigger bugfix, or
new feature were added. A program linked to a previous library
with smaller minor number still works, but a program linked to
newer library with a higher minor number may not work with a
library that has a lower minor number. This is a one way,
backwards only compatibility.</dd>
<dt>LEAST</dt>
<dd>The least number is increased for small changes, bugfixes,
changes in the documentation and so on. Except the bugs, changes
in the least number are fully forward and backward
compatible.</dd>
</dl>
This means, programs linked to mrw-c++ version 2.6.4 will work
with library version 2.6.3, also with version 2.6.5, or with
version 2.7.1, but it won't work with version 2.5.4 nor with 1.1.3
nor with 3.1.4.
You can see the version of the library by issuing the command @c what.
*/
/** @page license License
@verbinclude COPYING */
/** @page readme Readme
@verbinclude README */
/** @page install Installation
@verbinclude INSTALL */
/** @page news News
@verbinclude NEWS */
/** @page changes Change Log
@verbinclude ChangeLog */
/** @brief the namespace for this library
All classes and all functions (except global operators) are placed
in this namespace.
For an overview, better see the <a
href="modules.html">"Modules"</a> page.
*/
namespace mrw {
}