10 #include <QtCore/QMutexLocker>
16 #include "pdsdata/xtc/Dgram.hh"
31 throw logic_error(
"SharedMemoryInput::instance(): The instance of the base class is already initialized");
46 :
InputBase(ringbuffer,ratemeter,loadmeter,parent),
47 _partitionTag(partitionTag),
51 _skippedeventscounter(0)
64 Log::add(
Log::DEBUG0,
"SharedMemoryInput::run(): starting shared memory in put with partition Tag: '" +
74 Log::add(
Log::DEBUG0,
"SharedMemoryInput::end(): wait for 5 s that shared memory shuts down");
78 " probably lost connection to the shared memory. Therefore we will" +
79 " terminate the thread");
84 Log::add(
Log::DEBUG0,
"SharedMemoryInput::end(): Ok. Shared Memory input thread has shut down within 5 s");
103 buf.assign(reinterpret_cast<CASSEvent::buffer_t::value_type*>(datagram),
104 reinterpret_cast<CASSEvent::buffer_t::value_type*>(datagram)+(
sizeof(Pds::Dgram)+datagram->xtc.sizeofPayload()));
107 const bool isGood =
_convert(rbItem->element.get());
class calculating a rate in Hz.
status_t _status
the internal status of the thread
std::vector< char > buffer_t
a buffer type
static void add(Level level, const std::string &line)
add a string to the log
A Ringbuffer, handles communication between Input and Worker Threads.
bool shouldQuit() const
query whether this thread is told to quit
control_t _control
the internal control status of the thread
std::string toString(const Type &t)
convert any type to a string
wait(unsigned long time=ULONG_MAX)
void pausePoint()
point where the thread will be paused
contains a logger for cass