8 #ifndef SRC_XRDCL_XRDCLCHECKPOINTOPERATION_HH_
9 #define SRC_XRDCL_XRDCLCHECKPOINTOPERATION_HH_
26 template<
bool HasHndl>
63 uint16_t
timeout = pipelineTimeout < this->timeout ?
64 pipelineTimeout : this->
timeout;
81 template<
bool HasHndl>
83 Arg<uint64_t>, Arg<uint32_t>, Arg<const void*>>
117 uint64_t off = std::get<OffArg>( this->
args ).Get();
118 uint32_t len = std::get<LenArg>( this->
args ).Get();
119 const void* buf = std::get<BufArg>( this->
args ).Get();
120 uint16_t
timeout = pipelineTimeout < this->timeout ?
121 pipelineTimeout : this->
timeout;
131 uint16_t timeout = 0 )
134 std::move( size ), std::move( buffer ) ).
Timeout( timeout );
141 template<
bool HasHndl>
143 Arg<uint64_t>, Arg<std::vector<iovec>>>
177 uint64_t off = std::get<OffArg>( this->
args ).Get();
178 std::vector<iovec> &stdiov = std::get<IovecArg>( this->
args ).Get();
179 uint16_t
timeout = pipelineTimeout < this->timeout ?
180 pipelineTimeout : this->
timeout;
182 int iovcnt = stdiov.size();
184 for(
size_t i = 0; i < stdiov.size(); ++i )
186 iov[i].iov_base = stdiov[i].iov_base;
187 iov[i].iov_len = stdiov[i].iov_len;
198 Arg<std::vector<iovec>>
iov,
199 uint16_t timeout = 0 )
static const int kXR_ckpRollback
static const int kXR_ckpCommit
static const int kXR_ckpBegin
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Checkpointed write operation (.
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
Checkpointed WriteV operation (.
XRootDStatus RunImpl(PipelineHandler *handler, uint16_t pipelineTimeout)
std::tuple< Args... > args
Operation arguments.
uint16_t timeout
Operation timeout.
Derived< HasHndl > Timeout(uint16_t timeout)
Set operation timeout.
friend class FileOperation
Ctx< File > file
The file object itself.
std::unique_ptr< PipelineHandler > handler
Operation handler.
CheckpointImpl< false > Checkpoint(Ctx< File > file, Arg< ChkPtCode > code, uint16_t timeout=0)
Factory for creating ReadImpl objects.
ChkptWrtImpl< false > ChkptWrt(Ctx< File > file, Arg< uint64_t > offset, Arg< uint32_t > size, Arg< const void * > buffer, uint16_t timeout=0)
Factory for creating ReadImpl objects.
ChkptWrtVImpl< false > ChkptWrtV(Ctx< File > file, Arg< uint64_t > offset, Arg< std::vector< iovec >> iov, uint16_t timeout=0)
Factory for creating ChkptWrtVImpl objects.
ChkPtCode
Checkpoint operation code.
Utility class for storing a pointer to operation context.