xrootd
|
Handle the stateful operations. More...
#include <XrdClFileStateHandler.hh>
Classes | |
struct | RequestData |
Public Types | |
enum | FileStatus { Closed, Opened, Error, Recovering, OpenInProgress, CloseInProgress } |
State of the file. More... | |
Public Member Functions | |
FileStateHandler (FilePlugIn *&plugin) | |
Constructor. More... | |
FileStateHandler (bool useVirtRedirector, FilePlugIn *&plugin) | |
~FileStateHandler () | |
Destructor. More... | |
XRootDStatus | Open (const std::string &url, uint16_t flags, uint16_t mode, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Close (ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Stat (bool force, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Read (uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | PgRead (uint64_t offset, uint32_t size, void *buffer, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | PgReadRetry (uint64_t offset, uint32_t size, size_t pgnb, void *buffer, PgReadHandler *handler, uint16_t timeout=0) |
XRootDStatus | PgReadImpl (uint64_t offset, uint32_t size, void *buffer, uint16_t flags, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Write (uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Write (uint64_t offset, Buffer &&buffer, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Write (uint64_t offset, uint32_t size, Optional< uint64_t > fdoff, int fd, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | PgWrite (uint64_t offset, uint32_t size, const void *buffer, std::vector< uint32_t > &cksums, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | PgWriteRetry (uint64_t offset, uint32_t size, const void *buffer, uint32_t digest, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | PgWriteImpl (uint64_t offset, uint32_t size, const void *buffer, std::vector< uint32_t > &cksums, kXR_char flags, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Sync (ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Truncate (uint64_t size, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | VectorRead (const ChunkList &chunks, void *buffer, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | VectorWrite (const ChunkList &chunks, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | WriteV (uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | ReadV (uint64_t offset, struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Fcntl (const Buffer &arg, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Visa (ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | SetXAttr (const std::vector< xattr_t > &attrs, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | GetXAttr (const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | DelXAttr (const std::vector< std::string > &attrs, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | ListXAttr (ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | Checkpoint (kXR_char code, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | ChkptWrt (uint64_t offset, uint32_t size, const void *buffer, ResponseHandler *handler, uint16_t timeout=0) |
XRootDStatus | ChkptWrtV (uint64_t offset, const struct iovec *iov, int iovcnt, ResponseHandler *handler, uint16_t timeout=0) |
void | OnOpen (const XRootDStatus *status, const OpenInfo *openInfo, const HostList *hostList) |
Process the results of the opening operation. More... | |
void | OnClose (const XRootDStatus *status) |
Process the results of the closing operation. More... | |
void | OnStateError (XRootDStatus *status, Message *message, ResponseHandler *userHandler, MessageSendParams &sendParams) |
Handle an error while sending a stateful message. More... | |
void | OnStateRedirection (const std::string &redirectUrl, Message *message, ResponseHandler *userHandler, MessageSendParams &sendParams) |
Handle stateful redirect. More... | |
void | OnStateResponse (XRootDStatus *status, Message *message, AnyObject *response, HostList *hostList) |
Handle stateful response. More... | |
bool | IsOpen () const |
Check if the file is open. More... | |
bool | IsSecure () const |
Check if the file is using an encrypted connection. More... | |
bool | SetProperty (const std::string &name, const std::string &value) |
bool | GetProperty (const std::string &name, std::string &value) const |
void | Lock () |
Lock the internal lock. More... | |
void | UnLock () |
Unlock the internal lock. More... | |
void | Tick (time_t now) |
Tick. More... | |
void | TimeOutRequests (time_t now) |
Declare timeout on requests being recovered. More... | |
void | AfterForkChild () |
Called in the child process after the fork. More... | |
XRootDStatus | TryOtherServer (uint16_t timeout) |
Try other data server. More... | |
Private Types | |
typedef std::list< RequestData > | RequestList |
Private Member Functions | |
template<typename T > | |
Status | XAttrOperationImpl (kXR_char subcode, kXR_char options, const std::vector< T > &attrs, ResponseHandler *handler, uint16_t timeout=0) |
Status | SendOrQueue (const URL &url, Message *msg, ResponseHandler *handler, MessageSendParams &sendParams) |
Send a message to a host or put it in the recovery queue. More... | |
bool | IsRecoverable (const XRootDStatus &stataus) const |
Check if the stateful error is recoverable. More... | |
Status | RecoverMessage (RequestData rd, bool callbackOnFailure=true) |
Status | RunRecovery () |
Run the recovery procedure if appropriate. More... | |
XRootDStatus | SendClose (uint16_t timeout) |
bool | IsReadOnly () const |
Check if the file is open for read only. More... | |
XRootDStatus | ReOpenFileAtServer (const URL &url, uint16_t timeout) |
Re-open the current file at a given server. More... | |
void | FailMessage (RequestData rd, XRootDStatus status) |
Fail a message. More... | |
void | FailQueuedMessages (XRootDStatus status) |
Fail queued messages. More... | |
void | ReSendQueuedMessages () |
Re-send queued messages. More... | |
void | ReWriteFileHandle (Message *msg) |
Re-write file handle. More... | |
void | ResetMonitoringVars () |
Reset monitoring vars. More... | |
void | MonitorClose (const XRootDStatus *status) |
Dispatch monitoring information on close. More... | |
XRootDStatus | IssueRequest (const URL &url, Message *msg, ResponseHandler *handler, MessageSendParams &sendParams) |
XRootDStatus | WriteKernelBuffer (uint64_t offset, uint32_t length, std::unique_ptr< XrdSys::KernelBuffer > kbuff, ResponseHandler *handler, uint16_t timeout) |
Send a write request with payload being stored in a kernel buffer. More... | |
Private Attributes | |
XrdSysMutex | pMutex |
FileStatus | pFileState |
XRootDStatus | pStatus |
StatInfo * | pStatInfo |
URL * | pFileUrl |
URL * | pDataServer |
URL * | pLoadBalancer |
URL * | pStateRedirect |
URL * | pWrtRecoveryRedir |
uint8_t * | pFileHandle |
uint16_t | pOpenMode |
uint16_t | pOpenFlags |
RequestList | pToBeRecovered |
std::set< Message * > | pInTheFly |
uint64_t | pSessionId |
bool | pDoRecoverRead |
bool | pDoRecoverWrite |
bool | pFollowRedirects |
bool | pUseVirtRedirector |
bool | pIsChannelEncrypted |
bool | pAllowBundledClose |
timeval | pOpenTime |
uint64_t | pRBytes |
uint64_t | pVRBytes |
uint64_t | pWBytes |
uint64_t | pVWBytes |
uint64_t | pVSegs |
uint64_t | pRCount |
uint64_t | pVRCount |
uint64_t | pWCount |
uint64_t | pVWCount |
XRootDStatus | pCloseReason |
ResponseHandlerHolder * | pReOpenHandler |
LocalFileHandler * | pLFileHandler |
FilePlugIn *& | pPlugin |
Friends | |
class | ::PgReadHandler |
class | ::PgReadRetryHandler |
class | ::PgReadSubstitutionHandler |
class | ::OpenHandler |
Handle the stateful operations.
|
private |
XrdCl::FileStateHandler::FileStateHandler | ( | FilePlugIn *& | plugin | ) |
Constructor.
XrdCl::FileStateHandler::FileStateHandler | ( | bool | useVirtRedirector, |
FilePlugIn *& | plugin | ||
) |
Constructor
useVirtRedirector | if true Metalink files will be treated as a VirtualRedirectors |
XrdCl::FileStateHandler::~FileStateHandler | ( | ) |
Destructor.
void XrdCl::FileStateHandler::AfterForkChild | ( | ) |
Called in the child process after the fork.
XRootDStatus XrdCl::FileStateHandler::Checkpoint | ( | kXR_char | code, |
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Create a checkpoint
handler | : handler to be notified when the response arrives, the response parameter will hold a std::vector of XAttr objects |
timeout | : timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::ChkptWrt | ( | uint64_t | offset, |
uint32_t | size, | ||
const void * | buffer, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Checkpointed write - async
offset | offset from the beginning of the file |
size | number of bytes to be written |
buffer | a pointer to the buffer holding the data to be written |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::ChkptWrtV | ( | uint64_t | offset, |
const struct iovec * | iov, | ||
int | iovcnt, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Checkpointed WriteV - async
offset | offset from the beginning of the file |
iov | list of the buffers to be written |
iovcnt | number of buffers |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 then the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::Close | ( | ResponseHandler * | handler, |
uint16_t | timeout = 0 |
||
) |
Close the file object
handler | handler to be notified about the status of the operation |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::DelXAttr | ( | const std::vector< std::string > & | attrs, |
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Delete extended attributes - async
attrs | : list of extended attributes to set |
handler | : handler to be notified when the response arrives, the response parameter will hold a std::vector of XAttrStatus objects |
timeout | : timeout value, if 0 the environment default will be used |
|
private |
Fail a message.
|
private |
Fail queued messages.
XRootDStatus XrdCl::FileStateHandler::Fcntl | ( | const Buffer & | arg, |
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Performs a custom operation on an open file, server implementation dependent - async
arg | query argument |
handler | handler to be notified when the response arrives, the response parameter will hold a Buffer object if the procedure is successful |
timeout | timeout value, if 0 the environment default will be used |
bool XrdCl::FileStateHandler::GetProperty | ( | const std::string & | name, |
std::string & | value | ||
) | const |
Get file property
XRootDStatus XrdCl::FileStateHandler::GetXAttr | ( | const std::vector< std::string > & | attrs, |
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Get extended attributes - async
attrs | : list of extended attributes to get |
handler | : handler to be notified when the response arrives, the response parameter will hold a std::vector of XAttr objects |
timeout | : timeout value, if 0 the environment default will be used |
bool XrdCl::FileStateHandler::IsOpen | ( | ) | const |
Check if the file is open.
|
private |
Check if the file is open for read only.
|
private |
Check if the stateful error is recoverable.
|
inline |
Check if the file is using an encrypted connection.
|
private |
Issues request:
XRootDStatus XrdCl::FileStateHandler::ListXAttr | ( | ResponseHandler * | handler, |
uint16_t | timeout = 0 |
||
) |
List extended attributes - async
handler | : handler to be notified when the response arrives, the response parameter will hold a std::vector of XAttr objects |
timeout | : timeout value, if 0 the environment default will be used |
|
inline |
Lock the internal lock.
|
private |
Dispatch monitoring information on close.
void XrdCl::FileStateHandler::OnClose | ( | const XRootDStatus * | status | ) |
Process the results of the closing operation.
void XrdCl::FileStateHandler::OnOpen | ( | const XRootDStatus * | status, |
const OpenInfo * | openInfo, | ||
const HostList * | hostList | ||
) |
Process the results of the opening operation.
void XrdCl::FileStateHandler::OnStateError | ( | XRootDStatus * | status, |
Message * | message, | ||
ResponseHandler * | userHandler, | ||
MessageSendParams & | sendParams | ||
) |
Handle an error while sending a stateful message.
void XrdCl::FileStateHandler::OnStateRedirection | ( | const std::string & | redirectUrl, |
Message * | message, | ||
ResponseHandler * | userHandler, | ||
MessageSendParams & | sendParams | ||
) |
Handle stateful redirect.
void XrdCl::FileStateHandler::OnStateResponse | ( | XRootDStatus * | status, |
Message * | message, | ||
AnyObject * | response, | ||
HostList * | hostList | ||
) |
Handle stateful response.
XRootDStatus XrdCl::FileStateHandler::Open | ( | const std::string & | url, |
uint16_t | flags, | ||
uint16_t | mode, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Open the file pointed to by the given URL
url | url of the file to be opened |
flags | OpenFlags::Flags |
mode | Access::Mode for new files, 0 otherwise |
handler | handler to be notified about the status of the operation |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::PgRead | ( | uint64_t | offset, |
uint32_t | size, | ||
void * | buffer, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Read data pages at a given offset
offset | : offset from the beginning of the file (Note: has to 4KB aligned) |
size | : buffer size |
buffer | : a pointer to buffer big enough to hold the data |
handler | : handler to be notified when the response arrives, the response parameter will hold a PgReadInfo object if the procedure was successful |
timeout | : timeout value, if 0 environment default will be used |
XRootDStatus XrdCl::FileStateHandler::PgReadImpl | ( | uint64_t | offset, |
uint32_t | size, | ||
void * | buffer, | ||
uint16_t | flags, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Read data pages at a given offset (actual implementation)
offset | : offset from the beginning of the file (Note: has to 4KB aligned) |
size | : buffer size |
buffer | : a pointer to buffer big enough to hold the data |
flags | : PgRead flags |
handler | : handler to be notified when the response arrives, the response parameter will hold a PgReadInfo object if the procedure was successful |
timeout | : timeout value, if 0 environment default will be used |
XRootDStatus XrdCl::FileStateHandler::PgReadRetry | ( | uint64_t | offset, |
uint32_t | size, | ||
size_t | pgnb, | ||
void * | buffer, | ||
PgReadHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Retry reading one page of data at a given offset
offset | : offset from the beginning of the file (Note: has to 4KB aligned) |
size | : buffer size |
buffer | : a pointer to buffer big enough to hold the data |
handler | : handler to be notified when the response arrives |
timeout | : timeout value, if 0 environment default will be used |
XRootDStatus XrdCl::FileStateHandler::PgWrite | ( | uint64_t | offset, |
uint32_t | size, | ||
const void * | buffer, | ||
std::vector< uint32_t > & | cksums, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Write number of pages at a given offset - async
offset | offset from the beginning of the file |
size | buffer size |
buffer | a pointer to a buffer holding data pages |
cksums | the crc32c checksums for each 4KB page |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::PgWriteImpl | ( | uint64_t | offset, |
uint32_t | size, | ||
const void * | buffer, | ||
std::vector< uint32_t > & | cksums, | ||
kXR_char | flags, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Write number of pages at a given offset - async
offset | offset from the beginning of the file |
size | buffer size |
buffer | a pointer to a buffer holding data pages |
cksums | the crc32c checksums for each 4KB page |
flags | PgWrite flags |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::PgWriteRetry | ( | uint64_t | offset, |
uint32_t | size, | ||
const void * | buffer, | ||
uint32_t | digest, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Write number of pages at a given offset - async
offset | offset from the beginning of the file |
size | buffer size |
buffer | a pointer to a buffer holding data pages |
cksums | the crc32c checksums for each 4KB page |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::Read | ( | uint64_t | offset, |
uint32_t | size, | ||
void * | buffer, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Read a data chunk at a given offset - sync
offset | offset from the beginning of the file |
size | number of bytes to be read |
buffer | a pointer to a buffer big enough to hold the data or 0 if the buffer should be allocated by the system |
handler | handler to be notified when the response arrives, the response parameter will hold a buffer object if the procedure was successful, if a preallocated buffer was specified then the buffer object will "wrap" this buffer |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::ReadV | ( | uint64_t | offset, |
struct iovec * | iov, | ||
int | iovcnt, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Read data into scattered buffers in one operation - async
offset | offset from the beginning of the file |
iov | list of the buffers to be written |
iovcnt | number of buffers |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 then the environment default will be used |
|
private |
Recover a message
rd | request data associated with the message |
callbackOnFailure | should the current handler be called back if the recovery procedure fails |
|
private |
Re-open the current file at a given server.
|
private |
Re-send queued messages.
|
inlineprivate |
Reset monitoring vars.
|
private |
Re-write file handle.
|
private |
Run the recovery procedure if appropriate.
|
private |
|
private |
Send a message to a host or put it in the recovery queue.
bool XrdCl::FileStateHandler::SetProperty | ( | const std::string & | name, |
const std::string & | value | ||
) |
Set file property
XRootDStatus XrdCl::FileStateHandler::SetXAttr | ( | const std::vector< xattr_t > & | attrs, |
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Set extended attributes - async
attrs | : list of extended attributes to set |
handler | : handler to be notified when the response arrives, the response parameter will hold a std::vector of XAttrStatus objects |
timeout | : timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::Stat | ( | bool | force, |
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Obtain status information for this file - async
force | do not use the cached information, force re-stating |
handler | handler to be notified when the response arrives, the response parameter will hold a StatInfo object if the procedure is successful |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::Sync | ( | ResponseHandler * | handler, |
uint16_t | timeout = 0 |
||
) |
Commit all pending disk writes - async
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 the environment default will be used |
void XrdCl::FileStateHandler::Tick | ( | time_t | now | ) |
Tick.
void XrdCl::FileStateHandler::TimeOutRequests | ( | time_t | now | ) |
Declare timeout on requests being recovered.
XRootDStatus XrdCl::FileStateHandler::Truncate | ( | uint64_t | size, |
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Truncate the file to a particular size - async
size | desired size of the file |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::TryOtherServer | ( | uint16_t | timeout | ) |
Try other data server.
|
inline |
Unlock the internal lock.
XRootDStatus XrdCl::FileStateHandler::VectorRead | ( | const ChunkList & | chunks, |
void * | buffer, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Read scattered data chunks in one operation - async
chunks | list of the chunks to be read |
buffer | a pointer to a buffer big enough to hold the data |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 then the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::VectorWrite | ( | const ChunkList & | chunks, |
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Write scattered data chunks in one operation - async
chunks | list of the chunks to be read |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 then the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::Visa | ( | ResponseHandler * | handler, |
uint16_t | timeout = 0 |
||
) |
Get access token to a file - async
handler | handler to be notified when the response arrives, the response parameter will hold a Buffer object if the procedure is successful |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::Write | ( | uint64_t | offset, |
uint32_t | size, | ||
const void * | buffer, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Write a data chunk at a given offset - async
offset | offset from the beginning of the file |
size | number of bytes to be written |
buffer | a pointer to the buffer holding the data to be written |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::Write | ( | uint64_t | offset, |
Buffer && | buffer, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Write a data chunk at a given offset - async
offset | offset from the beginning of the file |
buffer | r-value reference to Buffer object, in this case XrdCl runtime takes ownership of the buffer |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 the environment default will be used |
XRootDStatus XrdCl::FileStateHandler::Write | ( | uint64_t | offset, |
uint32_t | size, | ||
Optional< uint64_t > | fdoff, | ||
int | fd, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Write a data from a given file descriptor at a given offset - async
offset | offset from the beginning of the file |
size | number of bytes to be written |
fdoff | offset of the data to be written from the file descriptor (optional, if not provided will copy data from the file descriptor at the current cursor position) |
fd | file descriptor open for reading |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 the environment default will be used |
|
private |
Send a write request with payload being stored in a kernel buffer.
XRootDStatus XrdCl::FileStateHandler::WriteV | ( | uint64_t | offset, |
const struct iovec * | iov, | ||
int | iovcnt, | ||
ResponseHandler * | handler, | ||
uint16_t | timeout = 0 |
||
) |
Write scattered buffers in one operation - async
offset | offset from the beginning of the file |
iov | list of the buffers to be written |
iovcnt | number of buffers |
handler | handler to be notified when the response arrives |
timeout | timeout value, if 0 then the environment default will be used |
|
private |
Generic implementation of xattr operation
subcode | : xattr operation code |
attrs | : operation argument |
handler | : operation handler |
timeout | : operation timeout |
|
friend |
|
friend |
|
friend |
|
friend |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
mutableprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |