Inspirel banner

Programming Distributed Systems with YAMI4

2.2 C++ General-Purpose Library

The C++ general-purpose library provides high-level messaging interface for a wide range of distributed applications. It is intended for non-critical systems and provides many convenient and high-level services like message routing, load-balancing and fail-over and automatic thread pool management.

User applications will typically use the services provided by this library instead of directly accessing the core component, although both strategies are possible even within the same process.


The core part of YAMI4 needs to be compiled before attempting this step.

On a Unix-like system:

$ cd src/cpp
$ make

On a Windows system with Visual Studio or Visual C++ installed open the VC++ terminal window and execute:

> cd src\cpp
> nmake /F Makefile.VS

After compilation the include/yami4-cpp directory (in the root project directory) will be filled with those header files that are supposed to be used by the client code and the lib directory will contain the libyamicpp.a or yamicpp.lib file for linking in user programs.

A separate Makefile.VS.DLL exists to support creation of DLL library for Windows. In this case the yamicpp.dll file is created in addition to the .lib file.


The C++ library is implemented in terms of the core library and therefore archive files for both core and C++ should be used when linking user programs. Similarly, both DLL files will be needed at run-time if this compilation method is used.

The doc/cpp directory contains the generated API documentation for this library.