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

default constructor

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

queries the line identifier of the present token

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

queries the pipe identifier of the present token

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

queries the token identifier

void void tf::Pipeflow::stop () 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

queries the number of deferrals

void void tf::Pipeflow::defer (size_t token) 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