xrootd
|
#include <XrdClParallelOperation.hh>
Classes | |
struct | AllPolicy |
struct | AnyPolicy |
struct | AtLeastPolicy |
struct | Ctx |
struct | SomePolicy |
Public Member Functions | |
template<bool from> | |
ParallelOperation (ParallelOperation< from > &&obj) | |
Constructor: copy-move a ParallelOperation in different state. More... | |
template<class Container > | |
ParallelOperation (Container &&container) | |
std::string | ToString () |
ParallelOperation< HasHndl > | All () |
ParallelOperation< HasHndl > | Any () |
ParallelOperation< HasHndl > | Some (size_t threshold) |
ParallelOperation< HasHndl > | AtLeast (size_t threshold) |
![]() | |
ConcreteOperation (Args &&... args) | |
ConcreteOperation (ConcreteOperation< ParallelOperation, from, Resp< void >, Args... > &&op) | |
ParallelOperation< true > | operator>> (Hdlr &&hdlr) |
ParallelOperation< true > | operator| (Operation< true > &op) |
ParallelOperation< true > | operator| (Operation< true > &&op) |
ParallelOperation< true > | operator| (Operation< false > &op) |
ParallelOperation< true > | operator| (Operation< false > &&op) |
ParallelOperation< HasHndl > | Recovery (rcvry_func recovery) |
Set recovery procedure in case the operation fails. More... | |
Operation< HasHndl > * | Move () |
Operation< true > * | ToHandled () |
![]() | |
Operation () | |
Constructor. More... | |
template<bool from> | |
Operation (Operation< from > &&op) | |
Move constructor between template instances. More... | |
virtual | ~Operation () |
Destructor. More... | |
Private Member Functions | |
XRootDStatus | RunImpl () |
Private Attributes | |
std::vector< Pipeline > | pipelines |
std::unique_ptr< PolicyExecutor > | policy |
Friends | |
template<bool > | |
class | ParallelOperation |
Additional Inherited Members | |
![]() | |
ParallelOperation< to > | Transform () |
ParallelOperation< true > | StreamImpl (ResponseHandler *handler) |
![]() | |
void | Run (std::promise< XRootDStatus > prms, std::function< void(const XRootDStatus &)> final) |
void | ForceHandler (const XRootDStatus &status) |
void | AddOperation (Operation< true > *op) |
![]() | |
static ParallelOperation< true > | PipeImpl (ConcreteOperation< ParallelOperation, true, Resp< void >, Args... > &me, Operation< true > &op) |
static ParallelOperation< true > | PipeImpl (ConcreteOperation< ParallelOperation, true, Resp< void >, Args... > &me, Operation< false > &op) |
static ParallelOperation< true > | PipeImpl (ConcreteOperation< ParallelOperation, false, Resp< void >, Args... > &me, Operation< true > &op) |
static ParallelOperation< true > | PipeImpl (ConcreteOperation< ParallelOperation, false, Resp< void >, Args... > &me, Operation< false > &op) |
![]() | |
std::tuple< Args... > | args |
Operation arguments. More... | |
rcvry_func | recovery |
The recovery routine for this operation. More... | |
![]() | |
std::unique_ptr< PipelineHandler > | handler |
Operation handler. More... | |
bool | valid |
Flag indicating if it is a valid object. More... | |
Parallel operations, allows to execute two or more pipelines in parallel.
|
inline |
Constructor: copy-move a ParallelOperation in different state.
|
inline |
Constructor
container | : iterable container with pipelines |
References XrdCl::ParallelOperation< HasHndl >::pipelines.
|
inline |
Set policy to All
(default)
All operations need to succeed in order for the parallel operation to be successful.
References XrdCl::ParallelOperation< HasHndl >::policy.
|
inline |
Set policy to Any
Just one of the operations needs to succeed in order for the parallel operation to be successful.
References XrdCl::ParallelOperation< HasHndl >::pipelines, and XrdCl::ParallelOperation< HasHndl >::policy.
|
inline |
Set policy to At Least
.
At least n (user defined) operations need to succeed in order for the parallel operation to be successful (the user handler will be called only when all operations are resolved).
References XrdCl::ParallelOperation< HasHndl >::pipelines, and XrdCl::ParallelOperation< HasHndl >::policy.
|
inlineprivatevirtual |
Run operation
params | : container with parameters forwarded from previous operation |
Implements XrdCl::Operation< HasHndl >.
References XrdCl::PipelineException::GetError(), XrdCl::Operation< HasHndl >::handler, XrdCl::ParallelOperation< HasHndl >::pipelines, XrdCl::ParallelOperation< HasHndl >::policy, and XrdCl::stError.
|
inline |
n (user defined) operations need to succeed in order for the parallel operation to be successful.
References XrdCl::ParallelOperation< HasHndl >::pipelines, and XrdCl::ParallelOperation< HasHndl >::policy.
|
inlinevirtual |
Implements XrdCl::Operation< HasHndl >.
References XrdCl::ParallelOperation< HasHndl >::pipelines.
|
private |
Referenced by XrdCl::ParallelOperation< HasHndl >::Any(), XrdCl::ParallelOperation< HasHndl >::AtLeast(), XrdCl::ParallelOperation< HasHndl >::ParallelOperation(), XrdCl::ParallelOperation< HasHndl >::RunImpl(), XrdCl::ParallelOperation< HasHndl >::Some(), and XrdCl::ParallelOperation< HasHndl >::ToString().
|
private |