xrootd
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
XrdCl::Pipeline Class Reference

#include <XrdClOperations.hh>

Public Member Functions

 Pipeline ()
 Default constructor.
 
 Pipeline (Operation< true > *op)
 Constructor.
 
 Pipeline (Operation< true > &op)
 Constructor.
 
 Pipeline (Operation< true > &&op)
 Constructor.
 
 Pipeline (Operation< false > *op)
 
 Pipeline (Operation< false > &op)
 Constructor.
 
 Pipeline (Operation< false > &&op)
 Constructor.
 
 Pipeline (Pipeline &&pipe)
 
Pipelineoperator= (Pipeline &&pipe)
 Constructor.
 
Pipelineoperator|= (Operation< true > &&op)
 Extend pipeline.
 
Pipelineoperator|= (Operation< false > &&op)
 Extend pipeline.
 
 operator Operation< true > & ()
 
 operator bool ()
 

Static Public Member Functions

static void Stop (const XRootDStatus &status=XrdCl::XRootDStatus())
 
static void Repeat ()
 Repeat current operation.
 
static void Replace (Operation< false > &&opr)
 Replace current operation.
 
static void Replace (Pipeline p)
 Replace with pipeline.
 
static void Ignore ()
 Ignore error and proceed with the pipeline.
 

Private Member Functions

Operation< true > * operator-> ()
 
void Run (Timeout timeout, std::function< void(const XRootDStatus &)> final=nullptr)
 

Private Attributes

std::unique_ptr< Operation< true > > operation
 First operation in the pipeline.
 
std::future< XRootDStatusftr
 The future result of the pipeline.
 

Friends

template<bool >
class ParallelOperation
 
class PipelineHandler
 
std::future< XRootDStatusAsync (Pipeline, uint16_t)
 

Detailed Description

A wrapper around operation pipeline. A Pipeline is a once-use-only object - once executed by a Workflow engine it is invalidated.

Takes ownership of given operation pipeline (which is in most would be a temporary object)

Constructor & Destructor Documentation

◆ Pipeline() [1/8]

XrdCl::Pipeline::Pipeline ( )
inline

Default constructor.

◆ Pipeline() [2/8]

XrdCl::Pipeline::Pipeline ( Operation< true > *  op)
inline

Constructor.

◆ Pipeline() [3/8]

XrdCl::Pipeline::Pipeline ( Operation< true > &  op)
inline

Constructor.

◆ Pipeline() [4/8]

XrdCl::Pipeline::Pipeline ( Operation< true > &&  op)
inline

Constructor.

◆ Pipeline() [5/8]

XrdCl::Pipeline::Pipeline ( Operation< false > *  op)
inline

◆ Pipeline() [6/8]

XrdCl::Pipeline::Pipeline ( Operation< false > &  op)
inline

Constructor.

◆ Pipeline() [7/8]

XrdCl::Pipeline::Pipeline ( Operation< false > &&  op)
inline

Constructor.

◆ Pipeline() [8/8]

XrdCl::Pipeline::Pipeline ( Pipeline &&  pipe)
inline

Member Function Documentation

◆ Ignore()

static void XrdCl::Pipeline::Ignore ( )
static

Ignore error and proceed with the pipeline.

◆ operator bool()

XrdCl::Pipeline::operator bool ( )
inline

Conversion to boolean

Returns
: true if it's a valid pipeline, false otherwise

References operation.

◆ operator Operation< true > &()

XrdCl::Pipeline::operator Operation< true > & ( )
inline

Conversion to Operation<true>

Exceptions
std::logic_error if pipeline is invalid

References operation.

◆ operator->()

Operation< true > * XrdCl::Pipeline::operator-> ( )
inlineprivate

Member access declaration, provides access to the underlying operation.

Returns
: pointer to the underlying

References operation.

◆ operator=()

Pipeline & XrdCl::Pipeline::operator= ( Pipeline &&  pipe)
inline

Constructor.

References operation.

◆ operator|=() [1/2]

Pipeline & XrdCl::Pipeline::operator|= ( Operation< false > &&  op)
inline

Extend pipeline.

References operation.

◆ operator|=() [2/2]

Pipeline & XrdCl::Pipeline::operator|= ( Operation< true > &&  op)
inline

Extend pipeline.

References operation.

◆ Repeat()

static void XrdCl::Pipeline::Repeat ( )
static

Repeat current operation.

◆ Replace() [1/2]

static void XrdCl::Pipeline::Replace ( Operation< false > &&  opr)
static

Replace current operation.

◆ Replace() [2/2]

static void XrdCl::Pipeline::Replace ( Pipeline  p)
static

Replace with pipeline.

◆ Run()

void XrdCl::Pipeline::Run ( Timeout  timeout,
std::function< void(const XRootDStatus &)>  final = nullptr 
)
inlineprivate

Schedules the underlying pipeline for execution.

Parameters
timeout: pipeline timeout value
final: to be called at the end of the pipeline

References ftr, XrdCl::Operation< HasHndl >::handler, operation, XrdCl::PipelineHandler::PreparePipelineStart(), and XrdCl::Operation< HasHndl >::Run().

◆ Stop()

static void XrdCl::Pipeline::Stop ( const XRootDStatus status = XrdCl::XRootDStatus())
static

Stop the current pipeline

Parameters
status: the final status for the pipeline

Friends And Related Symbol Documentation

◆ Async

std::future< XRootDStatus > Async ( Pipeline  pipeline,
uint16_t  timeout = 0 
)
friend

Helper function, schedules execution of given pipeline

Parameters
pipeline: the pipeline to be executed
timeout: the pipeline timeout
Returns
: future status of the operation

◆ ParallelOperation

template<bool >
friend class ParallelOperation
friend

◆ PipelineHandler

friend class PipelineHandler
friend

Member Data Documentation

◆ ftr

std::future<XRootDStatus> XrdCl::Pipeline::ftr
private

The future result of the pipeline.

Referenced by Run().

◆ operation

std::unique_ptr<Operation<true> > XrdCl::Pipeline::operation
private

First operation in the pipeline.

Referenced by operator bool(), operator Operation< true > &(), operator->(), operator=(), operator|=(), operator|=(), and Run().


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