13 #ifndef THRILL_DATA_CAT_STREAM_HEADER 14 #define THRILL_DATA_CAT_STREAM_HEADER 57 static constexpr
bool debug =
false;
74 const StreamId&
id,
size_t local_worker_id,
size_t dia_id);
117 bool closed() const final;
125 struct SeqReordering;
205 #endif // !THRILL_DATA_CAT_STREAM_HEADER Writers GetWriters() final
Block combines a reference to a read-only ByteBlock and book-keeping information. ...
std::vector< BlockQueue > queues_
BlockQueues to store incoming Blocks with no attached destination.
static constexpr bool debug
bool is_queue_closed(size_t from)
check if inbound queue is closed
Base class for common structures for ConcatStream and MixedStream.
A Stream is a virtual set of connections to all other worker instances, hence a "Stream" bundles them...
CatReader GetCatReader(bool consume)
const char * stream_type() final
return stream type string
CatBlockSource is a BlockSource which concatenates all Blocks available from a vector of BlockSources...
BlockWriter contains a temporary Block object into which a) any serializable item can be stored or b)...
CatReader GetReader(bool consume)
Open a CatReader (function name matches a method in File and MixStream).
BlockWriter< StreamSink > Writer
Multiplexes virtual Connections on Dispatcher.
Simple structure that holds a all stream instances for the workers on the local host for a given stre...
An extra class derived from std::vector<> for delivery of the BlockWriters of a Stream.
std::vector< Reader > GetReaders()
void Close() final
shuts the stream down.
BlockReader takes Block objects from BlockSource and allows reading of a) serializable Items or b) ar...
CatBlockSource GetCatBlockSource(bool consume)
Gets a CatBlockSource which includes all incoming queues of this stream.
Ownership handle onto a CatStreamData.
void OnStreamBlock(size_t from, uint32_t seq, Block &&b)
std::vector< T, Allocator< T > > vector
vector with Manager tracking
Base class for StreamSet.
CatStreamData(StreamSetBase *stream_set_base, Multiplexer &multiplexer, size_t send_size_limit, const StreamId &id, size_t local_worker_id, size_t dia_id)
Creates a new stream instance.
High-performance smart pointer used as a wrapping reference counting pointer.
const StreamId & id() const
Return stream id.
BlockQueue * loopback_queue(size_t from_worker_id)
Returns the loopback queue for the worker of this stream.
void OnStreamBlockOrdered(size_t from, Block &&b)
BlockReader< CatBlockSource > CatBlockReader
static constexpr bool debug_data
Stream - base class for CatStream and MixStream.
bool closed() const final
void set_dia_id(size_t dia_id)
BlockReader< BlockQueueSource > BlockQueueReader
CatStreamData & operator=(const CatStreamData &)=delete
non-copyable: delete assignment operator
A BlockQueue is a thread-safe queue used to hand-over Block objects between threads.
A BlockSource to read Block from a BlockQueue using a BlockReader.
std::vector< SeqReordering > seq_
Block Sequence numbers.