artdaq::SharedMemoryFragmentManager Class Reference

The SharedMemoryFragmentManager is a SharedMemoryManager that deals with Fragment transfers using a SharedMemoryManager. More...

#include <artdaq-core/Core/SharedMemoryFragmentManager.hh>

Inheritance diagram for artdaq::SharedMemoryFragmentManager:
artdaq::SharedMemoryManager

List of all members.

Public Member Functions

 SharedMemoryFragmentManager (uint32_t shm_key, size_t buffer_count, size_t max_buffer_size, size_t buffer_timeout_us=100 *1000000)
 SharedMemoryFragmentManager Constructor.
virtual ~SharedMemoryFragmentManager ()
 SharedMemoryFragmentManager destructor.
int WriteFragment (Fragment &&fragment, bool overwrite, size_t timeout_us)
 Write a Fragment to the Shared Memory.
int ReadFragment (Fragment &fragment)
 Read a Fragment from the Shared Memory.
int ReadFragmentHeader (detail::RawFragmentHeader &header)
 Read a Fragment Header from the Shared Memory.
int ReadFragmentData (RawDataType *destination, size_t words)
 Read Fragment Data from the Shared Memory.
bool ReadyForWrite (bool overwrite) override
 Check if a buffer is ready for writing, and if so, reserves it for use.

Detailed Description

The SharedMemoryFragmentManager is a SharedMemoryManager that deals with Fragment transfers using a SharedMemoryManager.

Definition at line 11 of file SharedMemoryFragmentManager.hh.


Constructor & Destructor Documentation

artdaq::SharedMemoryFragmentManager::SharedMemoryFragmentManager ( uint32_t  shm_key,
size_t  buffer_count,
size_t  max_buffer_size,
size_t  buffer_timeout_us = 100 * 1000000 
)

SharedMemoryFragmentManager Constructor.

Parameters:
shm_key The key to use when attaching/creating the shared memory segment
buffer_count The number of buffers in the shared memory
max_buffer_size The size of each buffer
buffer_timeout_us The maximum amount of time a buffer may be locked before being returned to its previous state. This timer is reset upon any operation by the owning SharedMemoryManager.

Definition at line 7 of file SharedMemoryFragmentManager.cc.


Member Function Documentation

int artdaq::SharedMemoryFragmentManager::ReadFragment ( Fragment fragment  ) 

Read a Fragment from the Shared Memory.

Parameters:
fragment Output Fragment object
Returns:
0 on success

Definition at line 70 of file SharedMemoryFragmentManager.cc.

int artdaq::SharedMemoryFragmentManager::ReadFragmentData ( RawDataType destination,
size_t  words 
)

Read Fragment Data from the Shared Memory.

Parameters:
destination Destination for data
words RawDataType Word count to read
Returns:
0 on success

Definition at line 111 of file SharedMemoryFragmentManager.cc.

int artdaq::SharedMemoryFragmentManager::ReadFragmentHeader ( detail::RawFragmentHeader header  ) 

Read a Fragment Header from the Shared Memory.

Parameters:
header Output Fragment Header
Returns:
0 on success

Definition at line 84 of file SharedMemoryFragmentManager.cc.

bool artdaq::SharedMemoryFragmentManager::ReadyForWrite ( bool  overwrite  )  [override, virtual]

Check if a buffer is ready for writing, and if so, reserves it for use.

Parameters:
overwrite Whether to overwrite Full buffers (non-reliable mode)
Returns:
True if SharedMemoryFragmentManager is ready for Fragment data

Reimplemented from artdaq::SharedMemoryManager.

Definition at line 14 of file SharedMemoryFragmentManager.cc.

int artdaq::SharedMemoryFragmentManager::WriteFragment ( Fragment &&  fragment,
bool  overwrite,
size_t  timeout_us 
)

Write a Fragment to the Shared Memory.

Parameters:
fragment Fragment to write
overwrite Whether to set the overwrite flag
timeout_us Time to wait for shared memory to be free (0: No timeout) (Timeout does not apply if overwrite == false)
Returns:
0 on success

Definition at line 23 of file SharedMemoryFragmentManager.cc.


The documentation for this class was generated from the following files:

Generated on 25 Sep 2018 for artdaq_core by  doxygen 1.6.1