C++ Message Queuing Library and Framework
Go to file
2018-04-10 19:47:30 +02:00
cmake Add CMake project 2018-04-10 19:47:30 +02:00
docs Update README 2018-04-10 18:52:57 +02:00
fairmq Add CMake project 2018-04-10 19:47:30 +02:00
.gitignore Add CMake project 2018-04-10 19:47:30 +02:00
AUTHORS Update README 2018-04-10 18:52:57 +02:00
CMakeLists.txt Add CMake project 2018-04-10 19:47:30 +02:00
CONTRIBUTORS Update README 2018-04-10 18:52:57 +02:00
LICENSE Update README 2018-04-10 18:52:57 +02:00
README.md Add CMake project 2018-04-10 19:47:30 +02:00

FairMQ

C++ Message Queuing Library

Dependencies

TODO

Installation

git clone https://github.com/FairRootGroup/FairMQ
mkdir fairmq_build && cd fairmq_build
cmake -DCMAKE_INSTALL_PREFIX=./fairmq_install ../fairmq
cmake --build . --target install

Usage

In your CMakeLists.txt:

find_package(FairMQ)

If FairMQ is not installed in system directories, you can hint the installation:

set(CMAKE_PREFIX_PATH /path/to/FairMQ/installation ${CMAKE_PREFIX_PATH})
find_package(FairMQ)

find_package(FairMQ) will define an imported target FairMQ::FairMQ (An alias FairRoot::FairMQ is also defined, but it is deprecated).

By default, find_package(FairMQ) will also invoke find_package commands for all its dependencies. You can override this behaviour though, e.g.:

set(FairMQ_PACKAGE_DEPENDENCIES_DISABLED ON)
find_package(FairMQ)

find_package(Boost COMPONENTS ${FairMQ_BOOST_COMPONENTS})
find_package(ZeroMQ)
# ...

The above allows you to customize the find_package calls in the case, you project also has a direct dependency to FairMQ's dependencies. Check the next section for more options on how to customize dependency discovery.

CMake options

  • -DDISABLE_COLOR=ON disables coloured console output.
  • -DFairMQ_PACKAGE_DEPENDENCIES_DISABLED=ON disables transitive package dependency discovery.

Documentation

Standard FairRoot is running all the different analysis tasks within one process. FairMQ (Message Queue) allows starting tasks on different processes and provides the communication layer between these processes.

  1. Device
    1. Topology
    2. Communication Patterns
    3. State Machine
    4. Multiple devices in the same process
  2. Transport Interface
    1. Message
      1. Ownership
    2. Channel
    3. Poller
  3. Configuration
    1. Device Configuration
    2. Communication Channels Configuration
      1. JSON Parser
      2. SuboptParser
    3. Introspection
  4. Development
    1. Testing
  5. Logging
    1. Log severity
    2. Log verbosity
    3. Color for console output
    4. File output
    5. Custom sinks
  6. Examples

License

GNU Lesser General Public Licence (LGPL) version 3, see LICENSE.

Copyright (C) 2013-2018 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH