TPIE

2362a60
tpie::pipelining::bits::pipe_base< child_t > Class Template Reference

Inherited by tpie::pipelining::bits::pipe_nonterm_base< child_t >, and tpie::pipelining::bits::pipe_term_base< child_t, fact_t >.

Public Member Functions

 pipe_base (pipe_base &other)=delete
 
 pipe_base (pipe_base &&other)=default
 
pipe_baseoperator= (pipe_base &other)=delete
 
pipe_baseoperator= (pipe_base &&other)=default
 
child_t memory (double amount)
 Set memory fraction for this node in the pipeline phase. More...
 
double memory () const
 Get memory fraction for this node in the pipeline phase. More...
 
child_t name (const std::string &n, priority_type p=PRIORITY_USER)
 Set name for this node. More...
 
child_t phase_name (const std::string &n, priority_type p=PRIORITY_USER)
 Set name for this phase. More...
 
child_t add_to_set (node_set s)
 Get a refenerce to this node. More...
 
child_t add_dependencies (node_set s)
 Add a depencency to a referenced node. More...
 
child_t add_forwarding_dependencies (node_set s)
 Add a forwarding dependency to a referenced node. More...
 
child_t breadcrumb (const std::string &n)
 Set a prefix for the name of this node. More...
 
child_t forward_any (const std::string &key, any_noncopyable value)
 
template<typename T >
child_t forward (const std::string &key, T value)
 

Protected Member Functions

child_t & self ()
 
const child_t & self () const
 

Detailed Description

template<typename child_t>
class tpie::pipelining::bits::pipe_base< child_t >

Definition at line 47 of file pipe_base.h.

Member Function Documentation

template<typename child_t>
child_t tpie::pipelining::bits::pipe_base< child_t >::add_dependencies ( node_set  s)
inline

Add a depencency to a referenced node.

See also
factory_base::ref

Definition at line 127 of file pipe_base.h.

127  {
128  self().factory.add_dependencies(s);
129  return std::move(self());
130  }
template<typename child_t>
child_t tpie::pipelining::bits::pipe_base< child_t >::add_forwarding_dependencies ( node_set  s)
inline

Add a forwarding dependency to a referenced node.

See also
factory_base::ref

Definition at line 137 of file pipe_base.h.

137  {
138  self().factory.add_forwarding_dependencies(s);
139  return std::move(self());
140  }
template<typename child_t>
child_t tpie::pipelining::bits::pipe_base< child_t >::add_to_set ( node_set  s)
inline

Get a refenerce to this node.

This reference can be used to call add_dependency on another node

See also
factory_base::ref

Definition at line 117 of file pipe_base.h.

117  {
118  self().factory.add_to_set(s);
119  return std::move(self());
120  }
template<typename child_t>
child_t tpie::pipelining::bits::pipe_base< child_t >::breadcrumb ( const std::string &  n)
inline

Set a prefix for the name of this node.

The name is used in the GraphViz plot generated by pipeline::plot.

See also
factory_base::push_breadcrumb

Definition at line 149 of file pipe_base.h.

149  {
150  self().factory.push_breadcrumb(n);
151  return std::move(self());
152  }
template<typename child_t>
child_t tpie::pipelining::bits::pipe_base< child_t >::memory ( double  amount)
inline

Set memory fraction for this node in the pipeline phase.

In the absence of minimum and maximum memory requirements set by node implementations, the memory assigned to the node will be proportional to the amount parameter which sets the memory priority of this node in relation to the rest of the phase.

See also
factory_base::memory(double)

Definition at line 65 of file pipe_base.h.

65  {
66  self().factory.memory(amount);
67  return std::move(self());
68  }
template<typename child_t>
double tpie::pipelining::bits::pipe_base< child_t >::memory ( ) const
inline

Get memory fraction for this node in the pipeline phase.

See also
memory(double)
factory_base::memory()

Definition at line 76 of file pipe_base.h.

76  {
77  return self().factory.memory();
78  }
template<typename child_t>
child_t tpie::pipelining::bits::pipe_base< child_t >::name ( const std::string &  n,
priority_type  p = PRIORITY_USER 
)
inline

Set name for this node.

The name is used in the GraphViz plot generated by pipeline::plot.

The name priority given in the second argument should indicate how important this node is for the current phase, and is used in naming the progress indicator for this phase. The node with the highest priority name gets to name the entire phase.

See also
factory_base::name

Definition at line 92 of file pipe_base.h.

92  {
93  self().factory.name(n, p);
94  return std::move(self());
95  }
template<typename child_t>
child_t tpie::pipelining::bits::pipe_base< child_t >::phase_name ( const std::string &  n,
priority_type  p = PRIORITY_USER 
)
inline

Set name for this phase.

The maximal priority phase name given for a phase wins.

See also
factory_base::phase_name

Definition at line 104 of file pipe_base.h.

104  {
105  self().factory.phase_name(n, p);
106  return std::move(self());
107  }

The documentation for this class was generated from the following file: