#include <FIFOStream.h>
Inheritance diagram for ers::FIFOStream:
Public Member Functions | |
FIFOStream () | |
FIFOStream (const FIFOStream &other) | |
~FIFOStream () | |
virtual void | send (const Issue *i) |
virtual Issue * | receive () |
virtual void | print_to (std::ostream &stream) const |
operator std::string () const | |
Static Public Attributes | |
static const char *const | FIFO_STREAM_KEY = "fifo" |
static const char *const | NULL_STREAM_KEY = "null" |
Protected Attributes | |
std::deque< Issue * > | m_issue_queue |
This streams is used to transmit Issues inside a process.
Definition at line 22 of file FIFOStream.h.
ers::FIFOStream::FIFOStream | ( | ) |
ers::FIFOStream::FIFOStream | ( | const FIFOStream & | other | ) |
Definition at line 30 of file FIFOStream.cxx.
References genRecEmupikp::i, m_issue_queue, and EvtCyclic3::other().
00030 : Stream(other) { 00031 for(unsigned int i=0;i<other.m_issue_queue.size();i++) { 00032 Issue *cloned = other.m_issue_queue[i]->clone(); 00033 m_issue_queue.push_back(cloned); 00034 } // for 00035 } // FIFOStream
ers::FIFOStream::~FIFOStream | ( | ) |
ers::Stream::operator std::string | ( | ) | const [inherited] |
Definition at line 35 of file Stream.cxx.
References ers::Stream::print_to().
00035 { 00036 std::ostringstream stream ; 00037 print_to(stream); 00038 return stream.str(); 00039 } // to string
void ers::FIFOStream::print_to | ( | std::ostream & | stream | ) | const [virtual] |
Reimplemented from ers::Stream.
Definition at line 63 of file FIFOStream.cxx.
References FIFO_STREAM_KEY, genRecEmupikp::i, and m_issue_queue.
00063 { 00064 stream << ers::FIFOStream::FIFO_STREAM_KEY << ":[" ; 00065 for(unsigned int i=0;i<m_issue_queue.size();i++) { 00066 stream << m_issue_queue[i]->what() ; 00067 if (i!=m_issue_queue.size()-1) { 00068 stream << ", " ; 00069 } // if not last 00070 } // for elements 00071 stream << "]" ; 00072 } // print_to
ers::Issue * ers::FIFOStream::receive | ( | ) | [virtual] |
Blocking read into the stream.
Reimplemented from ers::Stream.
Definition at line 56 of file FIFOStream.cxx.
References m_issue_queue.
00056 { 00057 if (m_issue_queue.empty()) return 0 ; 00058 Issue *issue = m_issue_queue[0] ; 00059 m_issue_queue.pop_front(); 00060 return issue ; 00061 } // receive
void ers::FIFOStream::send | ( | const Issue * | i | ) | [virtual] |
Sends the issue into the stream. This method should put the issue into a FIFO queue and be non blocking
i | pointer to the issue to send |
Reimplemented from ers::Stream.
Definition at line 45 of file FIFOStream.cxx.
References ers::Issue::clone(), ERS_PRE_CHECK_PTR, and m_issue_queue.
00045 { 00046 ERS_PRE_CHECK_PTR(issue_ptr); 00047 Issue *cloned = issue_ptr->clone(); 00048 m_issue_queue.push_back(cloned); 00049 } // send
const char *const ers::FIFOStream::FIFO_STREAM_KEY = "fifo" [static] |
Key for FIFO stream
Definition at line 27 of file FIFOStream.h.
Referenced by create_stream(), and print_to().
std::deque<Issue*> ers::FIFOStream::m_issue_queue [protected] |
Definition at line 25 of file FIFOStream.h.
Referenced by FIFOStream(), print_to(), receive(), and send().
const char *const ers::Stream::NULL_STREAM_KEY = "null" [static, inherited] |
Key for discard stream
Definition at line 39 of file Stream.h.
Referenced by create_stream(), and ers::Stream::print_to().