![]() |
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 Operation< HasHndl > * | Move ()=0 |
virtual Operation< true > * | ToHandled ()=0 |
virtual std::string | ToString ()=0 |
Name of the operation. More... | |
Protected Member Functions | |
void | AddOperation (Operation< true > *op) |
void | Run (Timeout timeout, std::promise< XRootDStatus > prms, std::function< void(const XRootDStatus &)> final) |
virtual XRootDStatus | RunImpl (PipelineHandler *handler, uint16_t timeout)=0 |
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 |
std::future< XRootDStatus > | Async (Pipeline, uint16_t) |
class | Pipeline |
class | PipelineHandler |
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.
Definition at line 187 of file XrdClOperations.hh.
|
inline |
Constructor.
Definition at line 203 of file XrdClOperations.hh.
|
inline |
Move constructor between template instances.
Definition at line 211 of file XrdClOperations.hh.
|
inlinevirtual |
|
inlineprotected |
Add next operation in the pipeline
op | : operation to add |
Definition at line 300 of file XrdClOperations.hh.
References XrdCl::Operation< HasHndl >::handler.
|
pure virtual |
Move current object into newly allocated instance
Implemented in XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Arguments... >, XrdCl::ConcreteOperation< ParallelOperation, HasHndl, Resp< void > >, and XrdCl::ConcreteOperation< Derived, HasHndl, Response, Args... >.
Referenced by XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::PipeImpl().
|
inlineprotected |
Run operation
prms | : the promise that we will have a result |
final | : the object to call at the end of pipeline |
Definition at line 254 of file XrdClOperations.hh.
References XrdCl::errInternal, XrdCl::errOperationExpired, XrdCl::PostMaster::GetJobManager(), XrdCl::DefaultEnv::GetPostMaster(), XrdCl::Operation< HasHndl >::handler, XrdCl::Status::IsOK(), XrdCl::JobManager::QueueJob(), XrdCl::Operation< HasHndl >::RunImpl(), and XrdCl::stError.
|
protectedpure virtual |
Run the actual operation
params | : container with parameters forwarded from previous operation |
Implemented in XrdEc::OpenOnlyImpl< HasHndl >, XrdCl::CloseArchiveImpl< HasHndl >, XrdCl::ZipListImpl< HasHndl >, XrdCl::ZipStatImpl< HasHndl >, XrdCl::CloseFileImpl< HasHndl >, XrdCl::AppendFileImpl< HasHndl >, XrdCl::ZipWriteImpl< HasHndl >, XrdCl::ZipReadFromImpl< HasHndl >, XrdCl::ZipReadImpl< HasHndl >, XrdCl::OpenFileImpl< HasHndl >, XrdCl::OpenArchiveImpl< 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::PgWriteImpl< HasHndl >, XrdCl::PgReadImpl< HasHndl >, XrdCl::ReadImpl< HasHndl >, XrdCl::OpenImpl< HasHndl >, XrdCl::ChkptWrtVImpl< HasHndl >, XrdCl::ChkptWrtImpl< HasHndl >, and XrdCl::CheckpointImpl< 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< Derived, HasHndl, Response, Arguments... >, XrdCl::ConcreteOperation< ParallelOperation, HasHndl, Resp< void > >, and XrdCl::ConcreteOperation< Derived, HasHndl, Response, Args... >.
Referenced by XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::PipeImpl().
|
pure virtual |
Name of the operation.
Implemented in XrdEc::OpenOnlyImpl< HasHndl >, XrdCl::CloseArchiveImpl< HasHndl >, XrdCl::ZipListImpl< HasHndl >, XrdCl::ZipStatImpl< HasHndl >, XrdCl::CloseFileImpl< HasHndl >, XrdCl::AppendFileImpl< HasHndl >, XrdCl::ZipWriteImpl< HasHndl >, XrdCl::ZipReadFromImpl< HasHndl >, XrdCl::ZipReadImpl< HasHndl >, XrdCl::OpenFileImpl< HasHndl >, XrdCl::OpenArchiveImpl< HasHndl >, 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::PgWriteImpl< HasHndl >, XrdCl::PgReadImpl< HasHndl >, XrdCl::ReadImpl< HasHndl >, XrdCl::OpenImpl< HasHndl >, XrdCl::ChkptWrtVImpl< HasHndl >, XrdCl::ChkptWrtImpl< HasHndl >, and XrdCl::CheckpointImpl< HasHndl >.
Definition at line 191 of file XrdClOperations.hh.
|
friend |
Helper function, schedules execution of given pipeline
pipeline | : the pipeline to be executed |
timeout | : the pipeline timeout |
Definition at line 522 of file XrdClOperations.hh.
|
friend |
Definition at line 195 of file XrdClOperations.hh.
|
friend |
Definition at line 196 of file XrdClOperations.hh.
Referenced by XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::AllocHandler(), XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::StreamImpl(), and XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::ToHandled().
|
protected |
Operation handler.
Definition at line 309 of file XrdClOperations.hh.
Referenced by XrdCl::Operation< HasHndl >::AddOperation(), XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::AllocHandler(), XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::operator|(), XrdCl::ZipArchive::PgRead(), XrdCl::PipelineHandler::PreparePipelineStart(), XrdCl::ZipArchive::Read(), XrdCl::Operation< HasHndl >::Run(), XrdCl::CheckpointImpl< HasHndl >::RunImpl(), XrdCl::ChkptWrtImpl< HasHndl >::RunImpl(), XrdCl::ChkptWrtVImpl< HasHndl >::RunImpl(), XrdCl::ReadImpl< HasHndl >::RunImpl(), XrdCl::PgReadImpl< HasHndl >::RunImpl(), XrdCl::PgWriteImpl< 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::StatFsImpl< HasHndl >::RunImpl(), XrdCl::StatVFSImpl< 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::OpenFileImpl< HasHndl >::RunImpl(), XrdCl::ZipReadImpl< HasHndl >::RunImpl(), XrdCl::ZipReadFromImpl< HasHndl >::RunImpl(), XrdCl::ZipWriteImpl< HasHndl >::RunImpl(), XrdCl::AppendFileImpl< HasHndl >::RunImpl(), XrdCl::CloseFileImpl< HasHndl >::RunImpl(), XrdCl::ZipStatImpl< HasHndl >::RunImpl(), XrdCl::ZipListImpl< HasHndl >::RunImpl(), XrdEc::OpenOnlyImpl< HasHndl >::RunImpl(), XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::StreamImpl(), XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::ToHandled(), and XrdCl::ZipArchive::Write().
|
protected |
Flag indicating if it is a valid object.
Definition at line 314 of file XrdClOperations.hh.