The library contains
- Functionality concerning communication and system events often used for system programming for Linux and Micosoft Windows.
- Some convenience classes for string and exception handling.
Center of all is a library made up from classes from different scopes:
- Communication: Classes concerning network interfaces and communication
- Exceptions: Often used types of exceptions
- String: Common string manipulation methods
- System: Classes concerning system programming (i.e. event loop, timers and notifiers)
Sources are to be found below lib
. Headers needed to interface with the library are to be found under include
.
Copyright (c) 2014 Hottinger Baldwin Messtechnik. See the LICENSE file for license rights and limitations.
We try to use as much existing and prooved software as possbile in order to keep implementation and testing effort as low as possible. All libraries used carry a generous license. See the licenses for details.
The open source project jsoncpp is being used as JSON composer and parser. Please make sure to choose Visual Studio 2013 as platform toolset (to be found in the project configuration properties under "General").
The unit tests provided do use the Boost libraries (1.55). Refer to boost for details.
For Linux, simply install the Boost development packages of your distribution. For Windows, the projects are tailored to link against the prebuilt boost binaries from boost.
Download and install the binaries and set the 'BOOST_ROOT
' environment variable to the installation directory.
Under Linux the cmake build system is being used. Install it using your distribution package system.
Create a sub directory inside the project directory.
Change into this subdirectory and call 'cmake ..
'. Execute 'make
' afterwards
to build all libraries and executables. Finally execute sudo make install
in order to install the library.
A solution for MSVC2012 is provided.
- Perform test coverage analysis by anabling the
GCOV
cmake feature. - clear previous information:
lcov --directory . --zerocounters
- run:
make -j && make test
- gather information:
lcov --directory . --capture --output-file libhbm.cov
- make it human readable:
genhtml --output-directory coverage --demangle-cpp --num-spaces 2 --sort --title "libhbm" --function-coverage --branch-coverage --legend libhbm.cov
- view readable result with web browser:
firefox coverage/index.html
Do not forget to disable GCOV
feature again before doing another release build!