XrdCl::Operation< HasHndl > Class Template Reference

#include <XrdClOperations.hh>

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

List of all members.

Public Member Functions

 Operation ()
 Constructor.
template<bool from>
 Operation (Operation< from > &&op)
 Move constructor between template instances.
virtual ~Operation ()
 Destructor.
virtual std::string ToString ()=0
 Name of the operation.
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< PipelineHandlerhandler
 Operation handler.
bool valid
 Flag indicating if it is a valid object.

Friends

class Operation
class Pipeline
class PipelineHandler
std::future< XRootDStatusAsync (Pipeline)

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

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

Constructor.

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

Move constructor between template instances.

template<bool HasHndl>
virtual XrdCl::Operation< HasHndl >::~Operation (  )  [inline, virtual]

Destructor.


Member Function Documentation

template<bool HasHndl>
void XrdCl::Operation< HasHndl >::AddOperation ( Operation< true > *  op  )  [inline, protected]

Add next operation in the pipeline

Parameters:
op : operation to add

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

template<bool HasHndl>
void XrdCl::Operation< HasHndl >::ForceHandler ( const XRootDStatus status  )  [inline, protected]

Handle error caused by missing parameter

Parameters:
err : error object
Returns:
: default operation status (actual status containing error information is passed to the handler)

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

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

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

Move current object into newly allocated instance

Returns:
: the new instance

Implemented in XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >, XrdCl::ConcreteOperation< WriteVImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< DelXAttrFsImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< SetXAttrBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Arguments...>, XrdCl::ConcreteOperation< RmImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< GetXAttrFsImpl, HasHndl, Resp< std::string >, Args...>, XrdCl::ConcreteOperation< DirListImpl, HasHndl, Resp< DirectoryList >, Args...>, XrdCl::ConcreteOperation< DelXAttrImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< DelXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Args...>, XrdCl::ConcreteOperation< ReadImpl, HasHndl, Resp< ChunkInfo >, Arguments...>, XrdCl::ConcreteOperation< FcntlImpl, HasHndl, Resp< Buffer >, Arguments...>, XrdCl::ConcreteOperation< ChModImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< DelXAttrBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Arguments...>, XrdCl::ConcreteOperation< QueryImpl, HasHndl, Resp< Buffer >, Args...>, XrdCl::ConcreteOperation< TruncateImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< ParallelOperation, HasHndl, Resp< void > >, XrdCl::ConcreteOperation< RmDirImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< StatImpl, HasHndl, Resp< StatInfo >, Arguments...>, XrdCl::ConcreteOperation< StatFsImpl, HasHndl, Resp< StatInfo >, Args...>, XrdCl::ConcreteOperation< SendInfoImpl, HasHndl, Resp< Buffer >, Args...>, XrdCl::ConcreteOperation< DeepLocateImpl, HasHndl, Resp< LocationInfo >, Args...>, XrdCl::ConcreteOperation< SetXAttrImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< GetXAttrBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Arguments...>, XrdCl::ConcreteOperation< TruncateFsImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Arguments...>, XrdCl::ConcreteOperation< CloseImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< PrepareImpl, HasHndl, Resp< Buffer >, Args...>, XrdCl::ConcreteOperation< PingImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< VisaImpl, HasHndl, Resp< Buffer >, Arguments...>, XrdCl::ConcreteOperation< SetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Args...>, XrdCl::ConcreteOperation< SyncImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< ListXAttrFsImpl, HasHndl, Resp< std::vector< XAttr > >, Args...>, XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args...>, XrdCl::ConcreteOperation< LocateImpl, HasHndl, Resp< LocationInfo >, Args...>, XrdCl::ConcreteOperation< GetXAttrImpl, HasHndl, Resp< std::string >, Arguments...>, XrdCl::ConcreteOperation< OpenImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< SetXAttrFsImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< ListXAttrImpl, HasHndl, Resp< std::vector< XAttr > >, Arguments...>, XrdCl::ConcreteOperation< WriteImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< StatVFSImpl, HasHndl, Resp< StatInfoVFS >, Args...>, XrdCl::ConcreteOperation< MvImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< ProtocolImpl, HasHndl, Resp< ProtocolInfo >, Args...>, XrdCl::ConcreteOperation< VectorReadImpl, HasHndl, Resp< VectorReadInfo >, Arguments...>, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Args...>, and XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments...>.

Referenced by XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments...>::PipeImpl().

template<bool HasHndl>
void XrdCl::Operation< HasHndl >::Run ( std::promise< XRootDStatus prms,
std::function< void(const XRootDStatus &)>  final 
) [inline, protected]

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::Operation< HasHndl >::ForceHandler(), XrdCl::Operation< HasHndl >::handler, XrdCl::Status::IsOK(), and XrdCl::Operation< HasHndl >::RunImpl().

template<bool HasHndl>
virtual XRootDStatus XrdCl::Operation< HasHndl >::RunImpl (  )  [protected, pure 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::OpenImpl< HasHndl >, XrdCl::ReadImpl< HasHndl >, XrdCl::CloseImpl< HasHndl >, XrdCl::StatImpl< HasHndl >, XrdCl::WriteImpl< HasHndl >, XrdCl::SyncImpl< HasHndl >, XrdCl::TruncateImpl< HasHndl >, XrdCl::VectorReadImpl< HasHndl >, XrdCl::VectorWriteImpl< HasHndl >, XrdCl::WriteVImpl< HasHndl >, XrdCl::FcntlImpl< HasHndl >, XrdCl::VisaImpl< HasHndl >, XrdCl::SetXAttrImpl< HasHndl >, XrdCl::SetXAttrBulkImpl< HasHndl >, XrdCl::GetXAttrImpl< HasHndl >, XrdCl::GetXAttrBulkImpl< HasHndl >, XrdCl::DelXAttrImpl< HasHndl >, XrdCl::DelXAttrBulkImpl< HasHndl >, XrdCl::ListXAttrImpl< HasHndl >, XrdCl::LocateImpl< HasHndl >, XrdCl::DeepLocateImpl< HasHndl >, XrdCl::MvImpl< HasHndl >, XrdCl::QueryImpl< HasHndl >, XrdCl::TruncateFsImpl< HasHndl >, XrdCl::RmImpl< HasHndl >, XrdCl::MkDirImpl< HasHndl >, XrdCl::RmDirImpl< HasHndl >, XrdCl::ChModImpl< HasHndl >, XrdCl::PingImpl< HasHndl >, XrdCl::StatFsImpl< HasHndl >, XrdCl::StatVFSImpl< HasHndl >, XrdCl::ProtocolImpl< HasHndl >, XrdCl::DirListImpl< HasHndl >, XrdCl::SendInfoImpl< HasHndl >, XrdCl::PrepareImpl< HasHndl >, XrdCl::SetXAttrFsImpl< HasHndl >, XrdCl::SetXAttrFsBulkImpl< HasHndl >, XrdCl::GetXAttrFsImpl< HasHndl >, XrdCl::GetXAttrFsBulkImpl< HasHndl >, XrdCl::DelXAttrFsImpl< HasHndl >, XrdCl::DelXAttrFsBulkImpl< HasHndl >, XrdCl::ListXAttrFsImpl< HasHndl >, and XrdCl::ParallelOperation< HasHndl >.

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

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

Move current object into newly allocated instance, and convert it into 'handled' operation.

Returns:
: the new instance

Implemented in XrdCl::ConcreteOperation< Derived, HasHndl, HdlrFactory, Args >, XrdCl::ConcreteOperation< WriteVImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< DelXAttrFsImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< SetXAttrBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Arguments...>, XrdCl::ConcreteOperation< RmImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< GetXAttrFsImpl, HasHndl, Resp< std::string >, Args...>, XrdCl::ConcreteOperation< DirListImpl, HasHndl, Resp< DirectoryList >, Args...>, XrdCl::ConcreteOperation< DelXAttrImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< DelXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Args...>, XrdCl::ConcreteOperation< ReadImpl, HasHndl, Resp< ChunkInfo >, Arguments...>, XrdCl::ConcreteOperation< FcntlImpl, HasHndl, Resp< Buffer >, Arguments...>, XrdCl::ConcreteOperation< ChModImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< DelXAttrBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Arguments...>, XrdCl::ConcreteOperation< QueryImpl, HasHndl, Resp< Buffer >, Args...>, XrdCl::ConcreteOperation< TruncateImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< ParallelOperation, HasHndl, Resp< void > >, XrdCl::ConcreteOperation< RmDirImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< StatImpl, HasHndl, Resp< StatInfo >, Arguments...>, XrdCl::ConcreteOperation< StatFsImpl, HasHndl, Resp< StatInfo >, Args...>, XrdCl::ConcreteOperation< SendInfoImpl, HasHndl, Resp< Buffer >, Args...>, XrdCl::ConcreteOperation< DeepLocateImpl, HasHndl, Resp< LocationInfo >, Args...>, XrdCl::ConcreteOperation< SetXAttrImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< GetXAttrBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Arguments...>, XrdCl::ConcreteOperation< TruncateFsImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Arguments...>, XrdCl::ConcreteOperation< CloseImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< PrepareImpl, HasHndl, Resp< Buffer >, Args...>, XrdCl::ConcreteOperation< PingImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< VisaImpl, HasHndl, Resp< Buffer >, Arguments...>, XrdCl::ConcreteOperation< SetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttrStatus > >, Args...>, XrdCl::ConcreteOperation< SyncImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< ListXAttrFsImpl, HasHndl, Resp< std::vector< XAttr > >, Args...>, XrdCl::ConcreteOperation< GetXAttrFsBulkImpl, HasHndl, Resp< std::vector< XAttr > >, Args...>, XrdCl::ConcreteOperation< LocateImpl, HasHndl, Resp< LocationInfo >, Args...>, XrdCl::ConcreteOperation< GetXAttrImpl, HasHndl, Resp< std::string >, Arguments...>, XrdCl::ConcreteOperation< OpenImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< SetXAttrFsImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< ListXAttrImpl, HasHndl, Resp< std::vector< XAttr > >, Arguments...>, XrdCl::ConcreteOperation< WriteImpl, HasHndl, Resp< void >, Arguments...>, XrdCl::ConcreteOperation< MkDirImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< StatVFSImpl, HasHndl, Resp< StatInfoVFS >, Args...>, XrdCl::ConcreteOperation< MvImpl, HasHndl, Resp< void >, Args...>, XrdCl::ConcreteOperation< ProtocolImpl, HasHndl, Resp< ProtocolInfo >, Args...>, XrdCl::ConcreteOperation< VectorReadImpl, HasHndl, Resp< VectorReadInfo >, Arguments...>, XrdCl::ConcreteOperation< Derived, HasHndl, Response, Args...>, and XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments...>.

Referenced by XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments...>::PipeImpl().

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

Friends And Related Function Documentation

template<bool HasHndl>
std::future<XRootDStatus> Async ( Pipeline  pipeline  )  [friend]

Helper function, schedules execution of given pipeline

Parameters:
pipeline : the pipeline to be executed
Returns:
: future status of the operation
template<bool HasHndl>
friend class Operation [friend]
template<bool HasHndl>
friend class Pipeline [friend]
template<bool HasHndl>
friend class PipelineHandler [friend]

Member Data Documentation

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

Operation handler.

Referenced by XrdCl::Operation< HasHndl >::AddOperation(), XrdCl::Operation< HasHndl >::ForceHandler(), XrdCl::Operation< HasHndl >::Run(), XrdCl::ParallelOperation< HasHndl >::RunImpl(), XrdCl::ListXAttrFsImpl< HasHndl >::RunImpl(), XrdCl::DelXAttrFsBulkImpl< HasHndl >::RunImpl(), XrdCl::DelXAttrFsImpl< HasHndl >::RunImpl(), XrdCl::GetXAttrFsBulkImpl< HasHndl >::RunImpl(), XrdCl::GetXAttrFsImpl< HasHndl >::RunImpl(), XrdCl::SetXAttrFsBulkImpl< HasHndl >::RunImpl(), XrdCl::SetXAttrFsImpl< HasHndl >::RunImpl(), XrdCl::PrepareImpl< HasHndl >::RunImpl(), XrdCl::SendInfoImpl< HasHndl >::RunImpl(), XrdCl::DirListImpl< HasHndl >::RunImpl(), XrdCl::ProtocolImpl< HasHndl >::RunImpl(), XrdCl::StatVFSImpl< HasHndl >::RunImpl(), XrdCl::StatFsImpl< HasHndl >::RunImpl(), XrdCl::PingImpl< HasHndl >::RunImpl(), XrdCl::ChModImpl< HasHndl >::RunImpl(), XrdCl::RmDirImpl< HasHndl >::RunImpl(), XrdCl::MkDirImpl< HasHndl >::RunImpl(), XrdCl::RmImpl< HasHndl >::RunImpl(), XrdCl::TruncateFsImpl< HasHndl >::RunImpl(), XrdCl::QueryImpl< HasHndl >::RunImpl(), XrdCl::MvImpl< HasHndl >::RunImpl(), XrdCl::DeepLocateImpl< HasHndl >::RunImpl(), XrdCl::ListXAttrImpl< HasHndl >::RunImpl(), XrdCl::DelXAttrBulkImpl< HasHndl >::RunImpl(), XrdCl::DelXAttrImpl< HasHndl >::RunImpl(), XrdCl::GetXAttrBulkImpl< HasHndl >::RunImpl(), XrdCl::GetXAttrImpl< HasHndl >::RunImpl(), XrdCl::SetXAttrBulkImpl< HasHndl >::RunImpl(), XrdCl::SetXAttrImpl< HasHndl >::RunImpl(), XrdCl::VisaImpl< HasHndl >::RunImpl(), XrdCl::FcntlImpl< HasHndl >::RunImpl(), XrdCl::WriteVImpl< HasHndl >::RunImpl(), XrdCl::VectorWriteImpl< HasHndl >::RunImpl(), XrdCl::VectorReadImpl< HasHndl >::RunImpl(), XrdCl::TruncateImpl< HasHndl >::RunImpl(), XrdCl::SyncImpl< HasHndl >::RunImpl(), XrdCl::WriteImpl< HasHndl >::RunImpl(), XrdCl::StatImpl< HasHndl >::RunImpl(), XrdCl::CloseImpl< HasHndl >::RunImpl(), XrdCl::ReadImpl< HasHndl >::RunImpl(), and XrdCl::ConcreteOperation< VectorWriteImpl, HasHndl, Resp< void >, Arguments...>::ToHandled().

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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 7 Jul 2020 for xrootd by  doxygen 1.6.1