xrootd
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
XrdCl::Operation< HasHndl > Class Template Referenceabstract

#include <XrdClOperations.hh>

Inheritance diagram for XrdCl::Operation< HasHndl >:
Inheritance graph
[legend]

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 (Timeout timeout, std::promise< XRootDStatus > prms, std::function< void(const XRootDStatus &)> final)
 
virtual XRootDStatus RunImpl (PipelineHandler *handler, uint16_t timeout)=0
 
void AddOperation (Operation< true > *op)
 

Protected Attributes

std::unique_ptr< PipelineHandlerhandler
 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< XRootDStatusAsync (Pipeline, uint16_t)
 

Detailed Description

template<bool HasHndl>
class XrdCl::Operation< HasHndl >

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.

Constructor & Destructor Documentation

◆ Operation() [1/2]

template<bool HasHndl>
XrdCl::Operation< HasHndl >::Operation ( )
inline

Constructor.

◆ Operation() [2/2]

template<bool HasHndl>
template<bool from>
XrdCl::Operation< HasHndl >::Operation ( Operation< from > &&  op)
inline

Move constructor between template instances.

◆ ~Operation()

template<bool HasHndl>
virtual XrdCl::Operation< HasHndl >::~Operation ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ AddOperation()

template<bool HasHndl>
void XrdCl::Operation< HasHndl >::AddOperation ( Operation< true > *  op)
inlineprotected

Add next operation in the pipeline

Parameters
op: operation to add

References XrdCl::Operation< HasHndl >::handler.

◆ Move()

template<bool HasHndl>
virtual Operation<HasHndl>* XrdCl::Operation< HasHndl >::Move ( )
pure virtual

◆ Run()

template<bool HasHndl>
void XrdCl::Operation< HasHndl >::Run ( Timeout  timeout,
std::promise< XRootDStatus prms,
std::function< void(const XRootDStatus &)>  final 
)
inlineprotected

Run operation

Parameters
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
Returns
: stOK if operation was scheduled for execution successfully, stError otherwise

References XrdCl::errInternal, XrdCl::errOperationExpired, XrdCl::Operation< HasHndl >::handler, XrdCl::PipelineHandler::HandleResponse(), XrdCl::Status::IsOK(), XrdCl::Operation< HasHndl >::RunImpl(), and XrdCl::stError.

Referenced by XrdCl::Pipeline::Run().

◆ RunImpl()

template<bool HasHndl>
virtual XRootDStatus XrdCl::Operation< HasHndl >::RunImpl ( PipelineHandler handler,
uint16_t  timeout 
)
protectedpure virtual

Run the actual operation

Parameters
params: container with parameters forwarded from previous operation
Returns
: status of the operation
Parameters
bucket: number of the bucket with arguments

Implemented in 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::ReadImpl< HasHndl >, XrdCl::OpenImpl< HasHndl >, XrdCl::ChkptWrtVImpl< HasHndl >, XrdCl::ChkptWrtImpl< HasHndl >, and XrdCl::CheckpointImpl< HasHndl >.

Referenced by XrdCl::Operation< HasHndl >::Run().

◆ ToHandled()

template<bool HasHndl>
virtual Operation<true>* XrdCl::Operation< HasHndl >::ToHandled ( )
pure virtual

◆ ToString()

template<bool HasHndl>
virtual std::string XrdCl::Operation< HasHndl >::ToString ( )
pure virtual

Name of the operation.

Implemented in 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::ReadImpl< HasHndl >, XrdCl::OpenImpl< HasHndl >, XrdCl::ChkptWrtVImpl< HasHndl >, XrdCl::ChkptWrtImpl< HasHndl >, and XrdCl::CheckpointImpl< HasHndl >.

Friends And Related Function Documentation

◆ Async

template<bool HasHndl>
std::future<XRootDStatus> Async ( Pipeline  pipeline,
uint16_t  timeout = 0 
)
friend

Helper function, schedules execution of given pipeline

Parameters
pipeline: the pipeline to be executed
timeout: the pipeline timeout
Returns
: future status of the operation

◆ Operation

template<bool HasHndl>
template<bool >
friend class Operation
friend

◆ Pipeline

template<bool HasHndl>
friend class Pipeline
friend

◆ PipelineHandler

template<bool HasHndl>
friend class PipelineHandler
friend

Member Data Documentation

◆ handler

template<bool HasHndl>
std::unique_ptr<PipelineHandler> XrdCl::Operation< HasHndl >::handler
protected

Operation handler.

Referenced by XrdCl::Operation< HasHndl >::AddOperation(), XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::AllocHandler(), XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::operator|(), XrdCl::Operation< HasHndl >::Run(), XrdCl::CheckpointImpl< HasHndl >::RunImpl(), XrdCl::ChkptWrtImpl< HasHndl >::RunImpl(), XrdCl::ChkptWrtVImpl< HasHndl >::RunImpl(), XrdCl::ReadImpl< HasHndl >::RunImpl(), XrdCl::StatImpl< HasHndl >::RunImpl(), XrdCl::WriteImpl< HasHndl >::RunImpl(), XrdCl::TruncateImpl< HasHndl >::RunImpl(), XrdCl::VectorReadImpl< HasHndl >::RunImpl(), XrdCl::VectorWriteImpl< HasHndl >::RunImpl(), XrdCl::WriteVImpl< HasHndl >::RunImpl(), XrdCl::FcntlImpl< 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::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::ParallelOperation< 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(), XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::StreamImpl(), and XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >::ToHandled().

◆ valid

template<bool HasHndl>
bool XrdCl::Operation< HasHndl >::valid
protected

Flag indicating if it is a valid object.


The documentation for this class was generated from the following file: