24 #ifndef SKA_CHEETAH_PSRDADA_DADAWRITECLIENT_H 25 #define SKA_CHEETAH_PSRDADA_DADAWRITECLIENT_H 27 #include "cheetah/psrdada/DadaClientBase.h" 28 #include "cheetah/psrdada/detail/RawBytes.h" 29 #include "cheetah/psrdada/detail/RawBytesWriter.h" 61 typedef std::function<void(std::ostream&)> NewSequenceCallback;
79 DadaWriteClient(key_t key, NewSequenceCallback
const& new_sequence_callback);
96 template <typename Iterator, typename DataType=typename std::iterator_traits<Iterator>::value_type>
97 void write(Iterator& begin, Iterator
const& end);
114 void new_sequence_impl();
115 std::unique_ptr<detail::RawBytesWriter>& acquire_data_block();
116 void release_data_block();
122 NewSequenceCallback _new_sequence_callback;
123 std::unique_ptr<detail::RawBytes> _current_block;
124 std::unique_ptr<detail::RawBytesWriter> _current_writer;
132 #include "cheetah/psrdada/detail/DadaWriteClient.cpp" 134 #endif // SKA_CHEETAH_PSRDADA_DADAWRITECLIENT_H Class that provides means for writing to a DADA ring buffer.
void new_sequence()
Start a new writing sequence in the buffer.
A general base class for DADA readers and writers.
Some limits and constants for FLDO.
void write(Iterator &begin, Iterator const &end)
Write to the data ring buffer.
DadaWriteClient(key_t key, NewSequenceCallback const &new_sequence_callback)
Instatiate new DadaWriteClient.
void write_eod()
: Write an EOD marker without writing a next header