Virtual chunk that has no input (that is, virtual producer).
More...
#include <tpie/pipelining/virtual.h>
Inherits tpie::pipelining::bits::virtual_chunk_base.
|
virt_node::ptr | m_node |
|
node_map::ptr | m_segmap |
|
double | m_memory |
|
template<typename Output>
class tpie::pipelining::virtual_chunk_begin< Output >
Virtual chunk that has no input (that is, virtual producer).
Definition at line 280 of file virtual.h.
template<typename Output>
Constructor that leaves the virtual chunk unassigned.
Definition at line 478 of file virtual.h.
template<typename Output>
template<typename fact_t >
Constructor that recursively constructs a node and takes ownership of it.
Definition at line 487 of file virtual.h.
template<typename Output>
template<typename Mid >
Constructor that combines two virtual chunks.
Assumes that the virtual nodes are already connected. You should not use this constructor directly; instead, use the pipe operator.
Definition at line 498 of file virtual.h.
500 : virtual_chunk_base(left.get_node_map(),
503 m_recv = acc::get_destination(right);
static ptr combine(ptr left, ptr right)
Aggregate ownership of virt_nodes.
void tpie::pipelining::bits::pipeline_base::operator() |
( |
stream_size_type |
items, |
|
|
progress_indicator_base & |
pi, |
|
|
memory_size_type |
mem |
|
) |
| |
|
inherited |
template<typename Output>
template<typename fact_t >
Construct a node and assign it to this virtual chunk.
Definition at line 510 of file virtual.h.
References tpie::pipelining::node::get_node_map(), tpie::log_error(), and tpie::pipelining::bits::virt_node::take_own().
512 log_error() <<
"Virtual chunk assigned twice" << std::endl;
515 typedef typename fact_t::template constructed<recv_type>::type constructed_type;
516 recv_type temp(m_recv);
bits::node_map::ptr get_node_map() const
Get the local node map, mapping node IDs to node pointers for all the nodes reachable from this one...
static ptr take_own(node *pipe)
Take std::new-ownership of given node.
logstream & log_error()
Return logstream for writing error log messages.
template<typename Output>
template<typename NextOutput >
Connect this virtual chunk to another chunk.
Definition at line 526 of file virtual.h.
527 if (!*
this)
throw virtual_chunk_missing_begin();
529 return *bits::assert_types_equal_and_return<Output, NextOutput, virtual_chunk_begin<NextOutput> *>
532 m_recv->set_destination(acc::get_source(dest));
533 return virtual_chunk_begin<NextOutput>(*
this, dest);
template<typename Output>
Connect this virtual chunk to another chunk.
Definition at line 539 of file virtual.h.
References tpie::pipelining::bits::virt_node::combine().
540 if (!*
this)
throw virtual_chunk_missing_begin();
541 if (!dest)
throw virtual_chunk_missing_end();
542 m_recv->set_destination(acc::get_source(dest));
543 return virtual_chunk_base(this->m_segmap,
static ptr combine(ptr left, ptr right)
Aggregate ownership of virt_nodes.
void tpie::pipelining::bits::pipeline_base::plot |
( |
std::ostream & |
out | ) |
|
|
inherited |
Generate a GraphViz plot of the actor graph.
When rendered with dot, GraphViz will place the nodes in the topological order of the item flow graph with items flowing from the top downwards.
Thus, a downwards arrow in the plot is a push edge, and an upwards arrow is a pull edge (assuming no cycles in the item flow graph).
The documentation for this class was generated from the following file: