FairMQ/fairmq/shmem
Dennis Klein 3205e0c378 refactor to more idiomatic RAII
* FairMQTransportFactoryZMQ: move the config invariant
    initialization to ctor
  * FairMQChannel: add new ctor that creates usable channel
  * FairMQSocket*: close sockets in dtor
  * FairMQTransportFactory*: terminate context in dtor
  * FairMQChannel: add Bind/Connect facades (for explicit control, e.g. timing)
2017-05-18 20:01:44 +02:00
..
FairMQMessageSHM.cxx shmem: introduce FairMQShmMonitor. 2017-04-28 13:30:51 +02:00
FairMQMessageSHM.h Transports: use transportType as static member. 2017-03-14 17:51:26 +01:00
FairMQPollerSHM.cxx FairMQChannel: API to access socket metrics; make fSocket private. 2017-03-14 17:51:26 +01:00
FairMQPollerSHM.h First version of the shared memory transport. 2016-12-18 14:50:58 +01:00
FairMQShmDeviceCounter.h shmem: introduce FairMQShmMonitor. 2017-04-28 13:30:51 +02:00
FairMQShmManager.h shmem: introduce FairMQShmMonitor. 2017-04-28 13:30:51 +02:00
FairMQShmMonitor.cxx Fix CID 169527 Uncaught Exception 2017-05-17 18:45:44 +02:00
FairMQShmMonitor.h shmem: introduce FairMQShmMonitor. 2017-04-28 13:30:51 +02:00
FairMQSocketSHM.cxx refactor to more idiomatic RAII 2017-05-18 20:01:44 +02:00
FairMQSocketSHM.h Refactor the transport interface 2017-04-20 11:07:49 +02:00
FairMQTransportFactorySHM.cxx refactor to more idiomatic RAII 2017-05-18 20:01:44 +02:00
FairMQTransportFactorySHM.h refactor to more idiomatic RAII 2017-05-18 20:01:44 +02:00
README.md First version of the shared memory transport. 2016-12-18 14:50:58 +01:00
runFairMQShmMonitor.cxx shmem: introduce FairMQShmMonitor. 2017-04-28 13:30:51 +02:00

Shared Memory transport

First version of the shared memory transport. To try with existing devices, run the devices with --transport shmem option.

The transport manages shared memory via boost::interprocess library. The transfer of the meta data, required to locate the content in the share memory, is done via ZeroMQ. The transport supports all communication patterns where a single message is received by a single receiver. For multiple receivers for the same message, the message has to be copied.

Under development:

  • Cleanup of the shared memory segment in case all devices crash. Currently at least one device has to stop properly for a cleanup.
  • Implement more than one transport per device.
  • Configuration of the shared memory size (currently hard-coded).