#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. | |
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) |
Private Member Functions | |
XRootDStatus | RunImpl () |
Private Attributes | |
std::vector< Pipeline > | pipelines |
std::unique_ptr< PolicyExecutor > | policy |
Friends | |
class | ParallelOperation |
Parallel operations, allows to execute two or more pipelines in parallel.
XrdCl::ParallelOperation< HasHndl >::ParallelOperation | ( | ParallelOperation< from > && | obj | ) | [inline] |
Constructor: copy-move a ParallelOperation in different state.
XrdCl::ParallelOperation< HasHndl >::ParallelOperation | ( | Container && | container | ) | [inline] |
Constructor
container | : iterable container with pipelines |
References XrdCl::ParallelOperation< HasHndl >::pipelines.
ParallelOperation<HasHndl> XrdCl::ParallelOperation< HasHndl >::All | ( | ) | [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.
ParallelOperation<HasHndl> XrdCl::ParallelOperation< HasHndl >::Any | ( | ) | [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.
ParallelOperation<HasHndl> XrdCl::ParallelOperation< HasHndl >::AtLeast | ( | size_t | threshold | ) | [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.
XRootDStatus XrdCl::ParallelOperation< HasHndl >::RunImpl | ( | ) | [inline, private, virtual] |
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.
ParallelOperation<HasHndl> XrdCl::ParallelOperation< HasHndl >::Some | ( | size_t | threshold | ) | [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.
std::string XrdCl::ParallelOperation< HasHndl >::ToString | ( | ) | [inline, virtual] |
Implements XrdCl::Operation< HasHndl >.
References XrdCl::ParallelOperation< HasHndl >::pipelines.
friend class ParallelOperation [friend] |
std::vector<Pipeline> 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().
std::unique_ptr<PolicyExecutor> XrdCl::ParallelOperation< HasHndl >::policy [private] |