Commit Graph

84 Commits

Author SHA1 Message Date
Alexey Rybalchenko
e5313d03fe Fix uncaught exceptions 2015-06-19 12:33:06 +02:00
Alexey Rybalchenko
d6a413534a Thread safe initialization of the channels 2015-06-19 12:32:56 +02:00
Alexey Rybalchenko
295d9bba57 add WaitForEndOfStateForMs(state, duration) 2015-06-17 16:01:11 +02:00
Alexey Rybalchenko
a3d919b763 Use FairMQProgOptions for Sink and BenchmarkSampler 2015-06-16 12:43:23 +02:00
Alexey Rybalchenko
7fda980710 Update FairMQStateMachine & introduce FairMQChannels
Organize sockets as a map of vectors of FairMQChannels.

Update FairMQStateMachine by removing SETTINGINPUT, SETTINGOUTPUT,
BIND and CONNECT states and by adding INITIALIZING_TASK, RESETTING_TASK
and RESETTING_DEVICE states. Run states functions in their own thread.
2015-06-16 09:29:53 +02:00
winckler
a2ebbbe450 move fairmq json parser to fairmq/options 2015-06-15 15:59:12 +02:00
winckler
f54fbb0f59 Add FairMQProgOptions for configuring MQDevices 2015-06-15 15:57:20 +02:00
Florian Uhlig
ccd04fc54b Change code to be able to use ROOT6
Use correct dependencies for ROOT5 and ROOT6
Changes to create rootmap files also for ROOT6.

Add the std namespace to all occurrences of any stream class.
Probably some using directive in the header files of ROOT6 is not present any longer.

Create the pcm files correctly and copy them into the lib directory.
Install the pcm files correctly in CMAKE_INSTALL_PREFIX.

Add default parameters for Run function.
Otherwise macros will crash with ROOT6 when no parameters are defined when calling Run function.
Cling is here more strict then Cint.

Replace the occurrence of '//' by '/' in pathes which are defined via environment variables.
Otherwise macros will crash when used with ROOT6. Cling is more strict then Cint.

Correctly cast variables. This is needed when macros are executed with ROOT6. Cling is more strict then Cint.

Correctly initialize the TObjString in macros.
Define include directories which don't belong to our project as SYSTEM include directories.
For these directories no warnings will be created.

Automatic loading of the libraries with ROOT6 on Apple search for libraries with extension dylib.
Older versions of ROOT expect the extension so. Depending on the ROOT version the correct extension is choosen.

Install also rootmap files to final library destination.
2015-05-28 09:32:36 +02:00
winckler
445ef356d1 - Rename some function members of Generic MQ Devices and propagate the modifications accordingly.
- Add a generic merger.

add SYSTEM_INCLUDE_DIRECTORIES in project_template CMakeLists.txt so that boost include dirs are found.
2015-05-28 09:32:30 +02:00
Alexey Rybalchenko
8a82afe184 Expose BIND and CONNECT states for use with dynamic configuration
introduce FairMQ interface version
2015-02-11 15:15:23 +01:00
Alexey Rybalchenko
a9b7e8866c add helper function to find IPs of the node 2015-01-28 19:57:59 +01:00
winckler
bfa26e857d re-organize base/MQ directory, change library name FairMQSampler to BaseMQ, and link tutorial 3,6,7 accordingly.
Functions in has_boostSerialization.h are now in baseMQtools.h. New template header files (.h and .tpl) are copied to proper directory in case of FairRoot external installation
Remove obsolete files in tutorial3.
2015-01-21 16:19:17 +01:00
Florian Uhlig
a8854d36ac Get rid of warnings which come from include files which doesn't belong to FairRoot. These are for example Boost or ROOT includes. Define in all CMakeLists.txt files such libraries as system libraries. In this case the compiler will not produce any warning. This change reduces the nightly test time on some machines from more then hour to 1 minute. The reason for this long compile time was the enormous amount of warnings produced before. The output of the warnings sum up to roughly 850 MB. 2015-01-21 16:19:14 +01:00
Alexey Rybalchenko
9317f06c10 Add REQ-REP zmq/nn sockets to FairMQ together with a little example program.
Also includes example of using boost::program_options.
2014-10-10 18:41:36 +02:00
Alexey Rybalchenko
0a610926a1 - Proper process termination:
if interrupted with CTRL+C blocking socket calls will return with -1. Each device should call FairMQDevice::Shutdown() before ending the running state to close open sockets, otherwise the interrupt call itself will block.

- FIX: Update number of received messages for FairMQFileSink.
- Add ability to poll on outputs for FairMQPoller.
2014-08-20 13:48:51 +02:00
Alexey Rybalchenko
281fcc459c Fix CIDs 10587, 10813, 10911, 10912, 10402, 10403, 10577, 10578, 10579, 10848, 10861, 10865, 10868, 10910.
Move classes inheriting from device to a subdirectory.
Make sure only protobuf library installed by fairsoft is used.
Cleanup FairMQDevice and fix some initialization list warnings.
Loop to duplicate input files in Sampler.
Add some documentation to FairMQ.
2014-07-28 14:04:20 +02:00
Florian Uhlig
865c0e010f Add license file LICENSE with LPGL license text copied from https://www.gnu.org/licenses/lgpl.html. Add license text to most of files of the project.
Add license text to all header files

Add license text to all c++ source files

Add license text to all C macro files

Converting file to UNIX format.

Add license text to all build system files

Add license text to all c source files

Rename file LICENCE to LICENSE. Change preamble in all files.
2014-06-06 14:57:56 +02:00
Alexey Rybalchenko
adc7443aa5 Allow easier testing without having to recompile for use of binary/boost/protobuf payload.
to use different data transfer method, just provide a parameter to the script, e.g.:
./startAll bin
./startAll boost
./startAll proto
etc.

if no or incorrect parameters is provided, binary method will be used!
protobuf method works only if the library is available on the system, otherwise it is not compiled.
2014-05-08 12:56:30 +02:00
Alexey Rybalchenko
9a0ed2ca72 Add (optional) Google Protocol Buffers support (example in Tutorial 3).
To use protobuf, run cmake as follows:
cmake -DUSE_PROTOBUF=1 ..
For this, protobuf library has to be installed on the system.

Further changes:
Clean up splitter/merger: default are N-to-1-merger and 1-to-N-splitter.
Fix bug in nanomsg message deallocation.
Setup proper buffer sizes for nanomsg/zeromq via cmake/bash script.
chmod +x for start scripts.
2014-03-17 12:21:47 +01:00
NicolasWinckler
dfc1dd6a06 - Make FairMQSampler generic.
- Remove fairroot dependency from fairmq.
2014-02-07 12:36:01 +01:00
Alexey Rybalchenko
c7b80f3ff9 move zeromq and nanomsg implementation files to separate directories 2014-01-28 13:20:53 +01:00
Alexey Rybalchenko
dde65d3aeb correct include dir in cmake file 2014-01-28 11:56:08 +01:00
Alexey Rybalchenko
64b9e991c3 add nanomsg implementations + use factory for nanomsg + lots of small stuff 2014-01-28 11:56:08 +01:00
Alexey Rybalchenko
c041c14373 cmake - use set(INCLUDE_DIRECTORIES) 2014-01-28 11:56:08 +01:00
Alexey Rybalchenko
88fee245b8 use factory for sockets 2014-01-28 11:56:08 +01:00
Alexey Rybalchenko
3803a3d155 a little clean up 2014-01-28 11:56:08 +01:00
Mohammad Al-Turany
1370259d41 changes from Alexey
git-svn-id: https://subversion.gsi.de/fairroot/fairbase/trunk@22782 0381ead4-6506-0410-b988-94b70fbc4730
2013-11-12 08:14:46 +00:00
Mohammad Al-Turany
9c4d64f3b1 New files from Ralf Kliemt
git-svn-id: https://subversion.gsi.de/fairroot/fairbase/trunk@22606 0381ead4-6506-0410-b988-94b70fbc4730
2013-11-01 11:24:47 +00:00
Mohammad Al-Turany
5121fe3ae5 merge the trunk with the development of ZeroMQ branch
git-svn-id: https://subversion.gsi.de/fairroot/fairbase/trunk@22451 0381ead4-6506-0410-b988-94b70fbc4730
2013-10-25 12:42:48 +00:00
Florian Uhlig
d65d7e490f Add missing dependencies.
git-svn-id: https://subversion.gsi.de/fairroot/fairbase/trunk@20792 0381ead4-6506-0410-b988-94b70fbc4730
2013-07-22 07:44:58 +00:00
Florian Uhlig
8a8c18b5b4 New macro for the generation of executables. Change all CMakeLists.txt where executables are build accordingly.
git-svn-id: https://subversion.gsi.de/fairroot/fairbase/trunk@20791 0381ead4-6506-0410-b988-94b70fbc4730
2013-07-22 07:38:23 +00:00
Florian Uhlig
59d1a6415c Correct problem with installation on MacOS. Dont't create a dictionary if there is no LinkDef file defined. Use the GENERATE_LIBRARY macro in fairmq.
git-svn-id: https://subversion.gsi.de/fairroot/fairbase/trunk@20785 0381ead4-6506-0410-b988-94b70fbc4730
2013-07-19 13:50:02 +00:00
Florian Uhlig
78ee2e3c8e Install more tutorials. Install also the zmq related libraries and executables. Change the templates of the config scripts and the script using the templates to do the installation correct.
git-svn-id: https://subversion.gsi.de/fairroot/fairbase/trunk@20672 0381ead4-6506-0410-b988-94b70fbc4730
2013-07-11 15:26:01 +00:00
Mohammad Al-Turany
231c7c8f7e Zero MQ implimentation and example (Tutorial3)
git-svn-id: https://subversion.gsi.de/fairroot/fairbase/trunk@20162 0381ead4-6506-0410-b988-94b70fbc4730
2013-06-07 08:07:48 +00:00