tf::Pipeflow
taskflow/algorithm/pipeline.hpp
typename... Ps Ps
class friend class Pipeline Pipeline tf::Pipeflow::Pipeline Pipeline
typename P
class friend class ScalablePipeline ScalablePipeline tf::Pipeflow::ScalablePipeline ScalablePipeline
typename... Ps Ps
class friend class DataPipeline DataPipeline tf::Pipeflow::DataPipeline DataPipeline
size_t size_t tf::Pipeflow::_line _line tf::Pipeflow::_line
size_t size_t tf::Pipeflow::_pipe _pipe tf::Pipeflow::_pipe
size_t size_t tf::Pipeflow::_token _token tf::Pipeflow::_token
bool bool tf::Pipeflow::_stop _stop tf::Pipeflow::_stop
size_t size_t tf::Pipeflow::_num_deferrals _num_deferrals tf::Pipeflow::_num_deferrals
std::unordered_set< size_t > std::unordered_set<size_t> tf::Pipeflow::_dependents _dependents tf::Pipeflow::_dependents
tf::Pipeflow::Pipeflow
()=default
Pipeflow
tf::Pipeflow::Pipeflow

default constructor

size_t size_t tf::Pipeflow::line () const line tf::Pipeflow::line

queries the line identifier of the present token

size_t size_t tf::Pipeflow::pipe () const pipe tf::Pipeflow::pipe

queries the pipe identifier of the present token

size_t size_t tf::Pipeflow::token () const token tf::Pipeflow::token

queries the token identifier

void void tf::Pipeflow::stop () stop tf::Pipeflow::stop

stops the pipeline scheduling

Only the first pipe can call this method to stop the pipeline. Calling stop from other pipes will throw exception.

size_t size_t tf::Pipeflow::num_deferrals () const num_deferrals tf::Pipeflow::num_deferrals

queries the number of deferrals

void void tf::Pipeflow::defer (size_t token) defer tf::Pipeflow::defer size_t token

pushes token in _dependents

Only the first pipe can call this method to defer the current scheduling token to the given token.

class to create a pipeflow object used by the pipe callable

Pipeflow represents a scheduling token in the pipeline scheduling framework. A pipeflow is created by the pipeline scheduler at runtime to pass to the pipe callable. Users can query the present statistics of that scheduling token, including the line identifier, pipe identifier, and token identifier, and build their application algorithms based on these statistics. At the first stage, users can explicitly call the stop method to stop the pipeline scheduler.

    tf::Pipe{tf::PipeType::SERIAL,[](tf::Pipeflow&pf){
    std::cout<<"tokenid="<<pf.token()
    <<"atline="<<pf.line()
    <<"atpipe="<<pf.pipe()
    <<'\n';
    }};

Pipeflow can only be created privately by the tf::Pipeline and be used through the pipe callable.

- tf::Pipeflow
  _dependents
- tf::Pipeflow
  _line
- tf::Pipeflow
  _num_deferrals
- tf::Pipeflow
  _pipe
- tf::Pipeflow
  _stop
- tf::Pipeflow
  _token
- tf::Pipeflow
  DataPipeline
- tf::Pipeflow
  defer
- tf::Pipeflow
  line
- tf::Pipeflow
  num_deferrals
- tf::Pipeflow
  pipe
- tf::Pipeflow
  Pipeflow
- tf::Pipeflow
  Pipeline
- tf::Pipeflow
  ScalablePipeline
- tf::Pipeflow
  stop
- tf::Pipeflow
  token