xrootd
|
#include <XrdClOperations.hh>
Public Member Functions | |
Operation () | |
Constructor. More... | |
template<bool from> | |
Operation (Operation< from > &&op) | |
Move constructor between template instances. More... | |
virtual | ~Operation () |
Destructor. More... | |
virtual std::string | ToString ()=0 |
Name of the operation. More... | |
virtual Operation< HasHndl > * | Move ()=0 |
virtual Operation< true > * | ToHandled ()=0 |
Protected Member Functions | |
void | Run (std::promise< XRootDStatus > prms, std::function< void(const XRootDStatus &)> final) |
virtual XRootDStatus | RunImpl ()=0 |
void | ForceHandler (const XRootDStatus &status) |
void | AddOperation (Operation< true > *op) |
Protected Attributes | |
std::unique_ptr< PipelineHandler > | handler |
Operation handler. More... | |
bool | valid |
Flag indicating if it is a valid object. More... | |
Friends | |
template<bool > | |
class | Operation |
class | Pipeline |
class | PipelineHandler |
std::future< XRootDStatus > | Async (Pipeline) |
Operation template. An Operation is a once-use-only object - once executed by a Workflow engine it is invalidated. Also if used as an argument for
or | the original object gets invalidated.
|
inline |
Constructor.
|
inline |
Move constructor between template instances.
|
inlinevirtual |
Destructor.
|
inlineprotected |
Add next operation in the pipeline
op | : operation to add |
References XrdCl::Operation< HasHndl >::handler.
|
inlineprotected |
Handle error caused by missing parameter
err | : error object |
References XrdCl::Operation< HasHndl >::handler.
Referenced by XrdCl::Operation< HasHndl >::Run().
|
pure virtual |
Move current object into newly allocated instance
Implemented in XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >, XrdCl::ConcreteOperation< TruncateFsImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< LocateImpl, HasHndl, Resp< LocationInfo >, Args... >, XrdCl::ConcreteOperation< CloseImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< DeepLocateImpl, HasHndl, Resp< LocationInfo >, Args... >, XrdCl::ConcreteOperation< SyncImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Arguments... >, XrdCl::ConcreteOperation< OpenImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< QueryImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< PingImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< TruncateImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< ParallelOperation, HasHndl, Resp< void > >, XrdCl::ConcreteOperation< StatFsImpl, HasHndl, Resp< StatInfo >, Args... >, XrdCl::ConcreteOperation< SendInfoImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< RmDirImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< StatImpl, HasHndl, Resp< StatInfo >, Arguments... >, XrdCl::ConcreteOperation< FcntlImpl, HasHndl, Resp< Buffer >, Arguments... >, XrdCl::ConcreteOperation< ChModImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Args... >, XrdCl::ConcreteOperation< ReadImpl, HasHndl, Resp< ChunkInfo >, Arguments... >, XrdCl::ConcreteOperation< WriteVImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< RmImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< ProtocolImpl, HasHndl, Resp< ProtocolInfo >, Args... >, XrdCl::ConcreteOperation< WriteImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< DirListImpl, HasHndl, Resp< DirectoryList >, Args... >, XrdCl::ConcreteOperation< StatVFSImpl, HasHndl, Resp< StatInfoVFS >, Args... >, XrdCl::ConcreteOperation< MvImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< VectorReadImpl, HasHndl, Resp< VectorReadInfo >, Arguments... >, XrdCl::ConcreteOperation< VisaImpl, HasHndl, Resp< Buffer >, Arguments... >, XrdCl::ConcreteOperation< PrepareImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments... >, and XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args... >.
Referenced by XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args... >::PipeImpl().
|
inlineprotected |
Run operation
prom | : the promise that we will have a result |
final | : the object to call at the end of pipeline |
args | : forwarded arguments |
bucket | : number of the bucket with arguments |
References XrdCl::Operation< HasHndl >::ForceHandler(), XrdCl::Operation< HasHndl >::handler, and XrdCl::Operation< HasHndl >::RunImpl().
|
protectedpure virtual |
Run the actual operation
params | : container with parameters forwarded from previous operation |
bucket | : number of the bucket with arguments |
Implemented in XrdCl::PrepareImpl< HasHndl >, XrdCl::SendInfoImpl< HasHndl >, XrdCl::DirListImpl< HasHndl >, XrdCl::VisaImpl< HasHndl >, XrdCl::ProtocolImpl< HasHndl >, XrdCl::FcntlImpl< HasHndl >, XrdCl::StatVFSImpl< HasHndl >, XrdCl::WriteVImpl< HasHndl >, XrdCl::StatFsImpl< HasHndl >, XrdCl::VectorWriteImpl< HasHndl >, XrdCl::PingImpl< HasHndl >, XrdCl::VectorReadImpl< HasHndl >, XrdCl::ChModImpl< HasHndl >, XrdCl::TruncateImpl< HasHndl >, XrdCl::RmDirImpl< HasHndl >, XrdCl::SyncImpl< HasHndl >, XrdCl::MkDirImpl< HasHndl >, XrdCl::WriteImpl< HasHndl >, XrdCl::RmImpl< HasHndl >, XrdCl::StatImpl< HasHndl >, XrdCl::TruncateFsImpl< HasHndl >, XrdCl::CloseImpl< HasHndl >, XrdCl::QueryImpl< HasHndl >, XrdCl::ReadImpl< HasHndl >, XrdCl::MvImpl< HasHndl >, XrdCl::OpenImpl< HasHndl >, XrdCl::DeepLocateImpl< HasHndl >, XrdCl::ParallelOperation< HasHndl >, and XrdCl::LocateImpl< HasHndl >.
Referenced by XrdCl::Operation< HasHndl >::Run().
|
pure virtual |
Move current object into newly allocated instance, and convert it into 'handled' operation.
Implemented in XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >, XrdCl::ConcreteOperation< TruncateFsImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< LocateImpl, HasHndl, Resp< LocationInfo >, Args... >, XrdCl::ConcreteOperation< CloseImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< DeepLocateImpl, HasHndl, Resp< LocationInfo >, Args... >, XrdCl::ConcreteOperation< SyncImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Arguments... >, XrdCl::ConcreteOperation< OpenImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< QueryImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< PingImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< TruncateImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< ParallelOperation, HasHndl, Resp< void > >, XrdCl::ConcreteOperation< StatFsImpl, HasHndl, Resp< StatInfo >, Args... >, XrdCl::ConcreteOperation< SendInfoImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< RmDirImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< StatImpl, HasHndl, Resp< StatInfo >, Arguments... >, XrdCl::ConcreteOperation< FcntlImpl, HasHndl, Resp< Buffer >, Arguments... >, XrdCl::ConcreteOperation< ChModImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Args... >, XrdCl::ConcreteOperation< ReadImpl, HasHndl, Resp< ChunkInfo >, Arguments... >, XrdCl::ConcreteOperation< WriteVImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< RmImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< ProtocolImpl, HasHndl, Resp< ProtocolInfo >, Args... >, XrdCl::ConcreteOperation< WriteImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< DirListImpl, HasHndl, Resp< DirectoryList >, Args... >, XrdCl::ConcreteOperation< StatVFSImpl, HasHndl, Resp< StatInfoVFS >, Args... >, XrdCl::ConcreteOperation< MvImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< VectorReadImpl, HasHndl, Resp< VectorReadInfo >, Arguments... >, XrdCl::ConcreteOperation< VisaImpl, HasHndl, Resp< Buffer >, Arguments... >, XrdCl::ConcreteOperation< PrepareImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments... >, and XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args... >.
Referenced by XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args... >::PipeImpl().
|
pure virtual |
Name of the operation.
Implemented in XrdCl::PrepareImpl< HasHndl >, XrdCl::SendInfoImpl< HasHndl >, XrdCl::DirListImpl< HasHndl >, XrdCl::VisaImpl< HasHndl >, XrdCl::ProtocolImpl< HasHndl >, XrdCl::FcntlImpl< HasHndl >, XrdCl::StatVFSImpl< HasHndl >, XrdCl::WriteVImpl< HasHndl >, XrdCl::StatFsImpl< HasHndl >, XrdCl::VectorWriteImpl< HasHndl >, XrdCl::PingImpl< HasHndl >, XrdCl::VectorReadImpl< HasHndl >, XrdCl::ChModImpl< HasHndl >, XrdCl::TruncateImpl< HasHndl >, XrdCl::RmDirImpl< HasHndl >, XrdCl::SyncImpl< HasHndl >, XrdCl::MkDirImpl< HasHndl >, XrdCl::WriteImpl< HasHndl >, XrdCl::RmImpl< HasHndl >, XrdCl::StatImpl< HasHndl >, XrdCl::TruncateFsImpl< HasHndl >, XrdCl::CloseImpl< HasHndl >, XrdCl::QueryImpl< HasHndl >, XrdCl::ReadImpl< HasHndl >, XrdCl::MvImpl< HasHndl >, XrdCl::OpenImpl< HasHndl >, XrdCl::DeepLocateImpl< HasHndl >, XrdCl::LocateImpl< HasHndl >, and XrdCl::ParallelOperation< HasHndl >.
|
friend |
Helper function, schedules execution of given pipeline
pipeline | : the pipeline to be executed |
|
friend |
|
friend |
|
protected |
Operation handler.
Referenced by XrdCl::Operation< HasHndl >::AddOperation(), XrdCl::Operation< HasHndl >::ForceHandler(), XrdCl::Operation< HasHndl >::Run(), XrdCl::ParallelOperation< HasHndl >::RunImpl(), XrdCl::DeepLocateImpl< HasHndl >::RunImpl(), XrdCl::MvImpl< HasHndl >::RunImpl(), XrdCl::ReadImpl< HasHndl >::RunImpl(), XrdCl::QueryImpl< HasHndl >::RunImpl(), XrdCl::CloseImpl< HasHndl >::RunImpl(), XrdCl::TruncateFsImpl< HasHndl >::RunImpl(), XrdCl::StatImpl< HasHndl >::RunImpl(), XrdCl::RmImpl< HasHndl >::RunImpl(), XrdCl::WriteImpl< HasHndl >::RunImpl(), XrdCl::MkDirImpl< HasHndl >::RunImpl(), XrdCl::SyncImpl< HasHndl >::RunImpl(), XrdCl::RmDirImpl< HasHndl >::RunImpl(), XrdCl::TruncateImpl< HasHndl >::RunImpl(), XrdCl::ChModImpl< HasHndl >::RunImpl(), XrdCl::VectorReadImpl< HasHndl >::RunImpl(), XrdCl::PingImpl< HasHndl >::RunImpl(), XrdCl::VectorWriteImpl< HasHndl >::RunImpl(), XrdCl::StatFsImpl< HasHndl >::RunImpl(), XrdCl::WriteVImpl< HasHndl >::RunImpl(), XrdCl::StatVFSImpl< HasHndl >::RunImpl(), XrdCl::FcntlImpl< HasHndl >::RunImpl(), XrdCl::ProtocolImpl< HasHndl >::RunImpl(), XrdCl::VisaImpl< HasHndl >::RunImpl(), XrdCl::DirListImpl< HasHndl >::RunImpl(), XrdCl::SendInfoImpl< HasHndl >::RunImpl(), XrdCl::PrepareImpl< HasHndl >::RunImpl(), XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args... >::StreamImpl(), and XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args... >::ToHandled().
|
protected |
Flag indicating if it is a valid object.