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< SyncImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< SetXAttrImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< LocateImpl, HasHndl, Resp< LocationInfo >, Args... >, XrdCl::ConcreteOperation< DeepLocateImpl, HasHndl, Resp< LocationInfo >, Args... >, XrdCl::ConcreteOperation< CloseImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< SetXAttrFsImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< QueryImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< OpenImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< GetXAttrImpl, HasHndl, Resp< std::string >, Arguments... >, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Arguments... >, XrdCl::ConcreteOperation< PingImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< TruncateImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< DelXAttrImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< StatFsImpl, HasHndl, Resp< StatInfo >, Args... >, XrdCl::ConcreteOperation< SendInfoImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< ParallelOperation, HasHndl, Resp< void > >, XrdCl::ConcreteOperation< RmDirImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< GetXAttrBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Arguments... >, XrdCl::ConcreteOperation< DelXAttrBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Arguments... >, XrdCl::ConcreteOperation< StatImpl, HasHndl, Resp< StatInfo >, Arguments... >, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Args... >, XrdCl::ConcreteOperation< FcntlImpl, HasHndl, Resp< Buffer >, Arguments... >, XrdCl::ConcreteOperation< ChModImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< WriteVImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< SetXAttrBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Arguments... >, XrdCl::ConcreteOperation< RmImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< ReadImpl, HasHndl, Resp< ChunkInfo >, Arguments... >, XrdCl::ConcreteOperation< ProtocolImpl, HasHndl, Resp< ProtocolInfo >, Args... >, XrdCl::ConcreteOperation< DelXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Args... >, XrdCl::ConcreteOperation< WriteImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< StatVFSImpl, HasHndl, Resp< StatInfoVFS >, Args... >, XrdCl::ConcreteOperation< MvImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< DirListImpl, HasHndl, Resp< DirectoryList >, Args... >, XrdCl::ConcreteOperation< GetXAttrFsImpl, HasHndl, Resp< std::string >, Args... >, XrdCl::ConcreteOperation< VisaImpl, HasHndl, Resp< Buffer >, Arguments... >, XrdCl::ConcreteOperation< VectorReadImpl, HasHndl, Resp< VectorReadInfo >, Arguments... >, XrdCl::ConcreteOperation< SetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Args... >, XrdCl::ConcreteOperation< PrepareImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< ListXAttrImpl, HasHndl, Resp< std::vector< XAttr > >, Arguments... >, XrdCl::ConcreteOperation< DelXAttrFsImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< ListXAttrFsImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >, and XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >.
Referenced by XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, 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, XrdCl::Status::IsOK(), 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::ParallelOperation< HasHndl >, XrdCl::ListXAttrFsImpl< HasHndl >, XrdCl::DelXAttrFsBulkImpl< HasHndl >, XrdCl::DelXAttrFsImpl< HasHndl >, XrdCl::GetXAttrFsBulkImpl< HasHndl >, XrdCl::GetXAttrFsImpl< HasHndl >, XrdCl::SetXAttrFsBulkImpl< HasHndl >, XrdCl::SetXAttrFsImpl< HasHndl >, XrdCl::PrepareImpl< HasHndl >, XrdCl::SendInfoImpl< HasHndl >, XrdCl::DirListImpl< HasHndl >, XrdCl::ProtocolImpl< HasHndl >, XrdCl::StatVFSImpl< HasHndl >, XrdCl::StatFsImpl< HasHndl >, XrdCl::PingImpl< HasHndl >, XrdCl::ChModImpl< HasHndl >, XrdCl::RmDirImpl< HasHndl >, XrdCl::MkDirImpl< HasHndl >, XrdCl::RmImpl< HasHndl >, XrdCl::TruncateFsImpl< HasHndl >, XrdCl::QueryImpl< HasHndl >, XrdCl::MvImpl< HasHndl >, XrdCl::DeepLocateImpl< HasHndl >, XrdCl::LocateImpl< HasHndl >, XrdCl::ListXAttrImpl< HasHndl >, XrdCl::DelXAttrBulkImpl< HasHndl >, XrdCl::DelXAttrImpl< HasHndl >, XrdCl::GetXAttrBulkImpl< HasHndl >, XrdCl::GetXAttrImpl< HasHndl >, XrdCl::SetXAttrBulkImpl< HasHndl >, XrdCl::SetXAttrImpl< HasHndl >, XrdCl::VisaImpl< HasHndl >, XrdCl::FcntlImpl< HasHndl >, XrdCl::WriteVImpl< HasHndl >, XrdCl::VectorWriteImpl< HasHndl >, XrdCl::VectorReadImpl< HasHndl >, XrdCl::TruncateImpl< HasHndl >, XrdCl::SyncImpl< HasHndl >, XrdCl::WriteImpl< HasHndl >, XrdCl::StatImpl< HasHndl >, XrdCl::CloseImpl< HasHndl >, XrdCl::ReadImpl< HasHndl >, and XrdCl::OpenImpl< 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< SyncImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< SetXAttrImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< LocateImpl, HasHndl, Resp< LocationInfo >, Args... >, XrdCl::ConcreteOperation< DeepLocateImpl, HasHndl, Resp< LocationInfo >, Args... >, XrdCl::ConcreteOperation< CloseImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< SetXAttrFsImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< QueryImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< OpenImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< GetXAttrImpl, HasHndl, Resp< std::string >, Arguments... >, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Arguments... >, XrdCl::ConcreteOperation< PingImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< TruncateImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< DelXAttrImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< StatFsImpl, HasHndl, Resp< StatInfo >, Args... >, XrdCl::ConcreteOperation< SendInfoImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< ParallelOperation, HasHndl, Resp< void > >, XrdCl::ConcreteOperation< RmDirImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< GetXAttrBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Arguments... >, XrdCl::ConcreteOperation< DelXAttrBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Arguments... >, XrdCl::ConcreteOperation< StatImpl, HasHndl, Resp< StatInfo >, Arguments... >, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Args... >, XrdCl::ConcreteOperation< FcntlImpl, HasHndl, Resp< Buffer >, Arguments... >, XrdCl::ConcreteOperation< ChModImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< WriteVImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< SetXAttrBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Arguments... >, XrdCl::ConcreteOperation< RmImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< ReadImpl, HasHndl, Resp< ChunkInfo >, Arguments... >, XrdCl::ConcreteOperation< ProtocolImpl, HasHndl, Resp< ProtocolInfo >, Args... >, XrdCl::ConcreteOperation< DelXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Args... >, XrdCl::ConcreteOperation< WriteImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< StatVFSImpl, HasHndl, Resp< StatInfoVFS >, Args... >, XrdCl::ConcreteOperation< MvImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< DirListImpl, HasHndl, Resp< DirectoryList >, Args... >, XrdCl::ConcreteOperation< GetXAttrFsImpl, HasHndl, Resp< std::string >, Args... >, XrdCl::ConcreteOperation< VisaImpl, HasHndl, Resp< Buffer >, Arguments... >, XrdCl::ConcreteOperation< VectorReadImpl, HasHndl, Resp< VectorReadInfo >, Arguments... >, XrdCl::ConcreteOperation< SetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Args... >, XrdCl::ConcreteOperation< PrepareImpl, HasHndl, Resp< Buffer >, Args... >, XrdCl::ConcreteOperation< ListXAttrImpl, HasHndl, Resp< std::vector< XAttr > >, Arguments... >, XrdCl::ConcreteOperation< DelXAttrFsImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments... >, XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args... >, XrdCl::ConcreteOperation< ListXAttrFsImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >, and XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >.
Referenced by XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >::PipeImpl().
|
pure virtual |
Name of the operation.
Implemented in XrdCl::ParallelOperation< HasHndl >, XrdCl::ListXAttrFsImpl< HasHndl >, XrdCl::DelXAttrFsBulkImpl< HasHndl >, XrdCl::DelXAttrFsImpl< HasHndl >, XrdCl::GetXAttrFsBulkImpl< HasHndl >, XrdCl::GetXAttrFsImpl< HasHndl >, XrdCl::SetXAttrFsBulkImpl< HasHndl >, XrdCl::SetXAttrFsImpl< HasHndl >, XrdCl::PrepareImpl< HasHndl >, XrdCl::SendInfoImpl< HasHndl >, XrdCl::DirListImpl< HasHndl >, XrdCl::ProtocolImpl< HasHndl >, XrdCl::StatVFSImpl< HasHndl >, XrdCl::StatFsImpl< HasHndl >, XrdCl::PingImpl< HasHndl >, XrdCl::ChModImpl< HasHndl >, XrdCl::RmDirImpl< HasHndl >, XrdCl::MkDirImpl< HasHndl >, XrdCl::RmImpl< HasHndl >, XrdCl::TruncateFsImpl< HasHndl >, XrdCl::QueryImpl< HasHndl >, XrdCl::MvImpl< HasHndl >, XrdCl::DeepLocateImpl< HasHndl >, XrdCl::LocateImpl< HasHndl >, XrdCl::ListXAttrImpl< HasHndl >, XrdCl::DelXAttrBulkImpl< HasHndl >, XrdCl::DelXAttrImpl< HasHndl >, XrdCl::GetXAttrBulkImpl< HasHndl >, XrdCl::GetXAttrImpl< HasHndl >, XrdCl::SetXAttrBulkImpl< HasHndl >, XrdCl::SetXAttrImpl< HasHndl >, XrdCl::VisaImpl< HasHndl >, XrdCl::FcntlImpl< HasHndl >, XrdCl::WriteVImpl< HasHndl >, XrdCl::VectorWriteImpl< HasHndl >, XrdCl::VectorReadImpl< HasHndl >, XrdCl::TruncateImpl< HasHndl >, XrdCl::SyncImpl< HasHndl >, XrdCl::WriteImpl< HasHndl >, XrdCl::StatImpl< HasHndl >, XrdCl::CloseImpl< HasHndl >, XrdCl::ReadImpl< HasHndl >, and XrdCl::OpenImpl< HasHndl >.
|
friend |
Helper function, schedules execution of given pipeline
pipeline | : the pipeline to be executed |
|
friend |
|
friend |
Referenced by XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >::PipeImpl(), XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >::StreamImpl(), and XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >::ToHandled().
|
protected |
Operation handler.
Referenced by XrdCl::Operation< HasHndl >::AddOperation(), XrdCl::Operation< HasHndl >::ForceHandler(), XrdCl::Operation< HasHndl >::Run(), XrdCl::ReadImpl< HasHndl >::RunImpl(), XrdCl::CloseImpl< HasHndl >::RunImpl(), XrdCl::StatImpl< HasHndl >::RunImpl(), XrdCl::WriteImpl< HasHndl >::RunImpl(), XrdCl::SyncImpl< HasHndl >::RunImpl(), XrdCl::TruncateImpl< HasHndl >::RunImpl(), XrdCl::VectorReadImpl< HasHndl >::RunImpl(), XrdCl::VectorWriteImpl< HasHndl >::RunImpl(), XrdCl::WriteVImpl< HasHndl >::RunImpl(), XrdCl::FcntlImpl< HasHndl >::RunImpl(), XrdCl::VisaImpl< HasHndl >::RunImpl(), XrdCl::SetXAttrImpl< HasHndl >::RunImpl(), XrdCl::SetXAttrBulkImpl< HasHndl >::RunImpl(), XrdCl::GetXAttrImpl< HasHndl >::RunImpl(), XrdCl::GetXAttrBulkImpl< HasHndl >::RunImpl(), XrdCl::DelXAttrImpl< HasHndl >::RunImpl(), XrdCl::DelXAttrBulkImpl< HasHndl >::RunImpl(), XrdCl::ListXAttrImpl< HasHndl >::RunImpl(), XrdCl::DeepLocateImpl< HasHndl >::RunImpl(), XrdCl::MvImpl< HasHndl >::RunImpl(), XrdCl::QueryImpl< HasHndl >::RunImpl(), XrdCl::TruncateFsImpl< HasHndl >::RunImpl(), XrdCl::RmImpl< HasHndl >::RunImpl(), XrdCl::MkDirImpl< HasHndl >::RunImpl(), XrdCl::RmDirImpl< HasHndl >::RunImpl(), XrdCl::ChModImpl< HasHndl >::RunImpl(), XrdCl::PingImpl< HasHndl >::RunImpl(), XrdCl::StatFsImpl< HasHndl >::RunImpl(), XrdCl::StatVFSImpl< HasHndl >::RunImpl(), XrdCl::ProtocolImpl< HasHndl >::RunImpl(), XrdCl::DirListImpl< HasHndl >::RunImpl(), XrdCl::SendInfoImpl< HasHndl >::RunImpl(), XrdCl::PrepareImpl< HasHndl >::RunImpl(), XrdCl::SetXAttrFsImpl< HasHndl >::RunImpl(), XrdCl::SetXAttrFsBulkImpl< HasHndl >::RunImpl(), XrdCl::GetXAttrFsImpl< HasHndl >::RunImpl(), XrdCl::GetXAttrFsBulkImpl< HasHndl >::RunImpl(), XrdCl::DelXAttrFsImpl< HasHndl >::RunImpl(), XrdCl::DelXAttrFsBulkImpl< HasHndl >::RunImpl(), XrdCl::ListXAttrFsImpl< HasHndl >::RunImpl(), XrdCl::ParallelOperation< HasHndl >::RunImpl(), XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >::StreamImpl(), and XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args... >::ToHandled().
|
protected |
Flag indicating if it is a valid object.