![]() |
XRootD
|
#include <XrdXrootdAioTask.hh>
Public Member Functions | |
void | Completed (XrdXrootdAioBuff *aioP) |
const char * | ID () |
void | Init (XrdXrootdProtocol *protP, XrdXrootdResponse &resp, XrdXrootdFile *fP) |
virtual void | Read (long long offs, int dlen)=0 |
virtual void | Recycle (bool release)=0 |
XrdXrootdProtocol * | urProtocol () |
virtual int | Write (long long offs, int dlen)=0 |
![]() | |
XrdJob (const char *desc="") | |
virtual | ~XrdJob () |
virtual void | DoIt ()=0 |
Protected Member Functions | |
XrdXrootdAioTask (const char *what="aio request") | |
virtual | ~XrdXrootdAioTask () |
virtual void | CopyF2L ()=0 |
virtual int | CopyL2F ()=0 |
virtual bool | CopyL2F (XrdXrootdAioBuff *aioP)=0 |
bool | Drain () |
int | gdDone () override |
void | gdFail () override |
XrdXrootdAioBuff * | getBuff (bool wait) |
void | SendError (int rc, const char *eText) |
void | SendFSError (int rc) |
bool | Validate (XrdXrootdAioBuff *aioP) |
Protected Attributes | ||
union { | ||
XrdXrootdNormAio * | nextNorm | |
XrdXrootdPgrwAio * | nextPgrw | |
XrdXrootdAioTask * | nextTask | |
}; | ||
union { | ||
XrdXrootdAioBuff * | finalRead | |
XrdXrootdAioBuff * | pendWrite | |
}; | ||
XrdSysMutex | aioMutex | |
XrdSysCondVar2 | aioReady | |
char | aioState | |
XrdXrootdFile * | dataFile | |
int | dataLen | |
XrdLink * | dataLink | |
off_t | dataOffset | |
off_t | highOffset | |
RAtomic_uchar | inFlight | |
RAtomic_bool | isDone | |
XrdXrootdAioBuff * | pendQ | |
XrdXrootdAioBuff * | pendQEnd | |
XrdXrootdProtocol * | Protocol | |
XrdXrootdResponse | Response | |
char | Status | |
Static Protected Attributes | |
static const int | aioDead = 0x01 |
static const int | aioHeld = 0x02 |
static const int | aioPage = 0x04 |
static const int | aioRead = 0x08 |
static const int | aioSchd = 0x10 |
static const int | Offline = 0 |
static const int | Running = 1 |
static const char * | TraceID = "AioTask" |
static const int | Waiting = 2 |
Friends | |
class | XrdXrootdAioFob |
Additional Inherited Members | |
![]() | |
const char * | Comment |
XrdJob * | NextJob |
Definition at line 46 of file XrdXrootdAioTask.hh.
|
inlineprotected |
Definition at line 69 of file XrdXrootdAioTask.hh.
|
inlineprotectedvirtual |
Definition at line 71 of file XrdXrootdAioTask.hh.
void XrdXrootdAioTask::Completed | ( | XrdXrootdAioBuff * | aioP | ) |
Definition at line 73 of file XrdXrootdAioTask.cc.
References aioMutex, aioReady, inFlight, isDone, XrdSysMutex::Lock(), XrdXrootdAioBuff::next, Offline, pendQ, pendQEnd, XrdXrootdAioBuff::Recycle(), Recycle(), Running, XrdXrootd::Sched, XrdScheduler::Schedule(), XrdSysCondVar2::Signal(), Status, XrdSysMutex::UnLock(), and Waiting.
Referenced by XrdXrootdAioBuff::doneRead(), and XrdXrootdAioBuff::doneWrite().
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protected |
Definition at line 113 of file XrdXrootdAioTask.cc.
References aioMutex, aioRead, aioState, dataFile, dataLink, XrdXrootd::eLog, XrdSysError::Emsg(), XrdXrootdFile::FileKey, XrdLink::ID, inFlight, isDone, XrdSysMutex::Lock(), XrdXrootdAioBuff::next, Offline, pendQ, pendQEnd, XrdXrootdAioBuff::Recycle(), Status, and XrdSysMutex::UnLock().
Referenced by gdDone(), and gdFail().
|
overrideprotected |
Definition at line 157 of file XrdXrootdAioTask.cc.
References XrdJob::Comment, CopyL2F(), dataLen, DEBUG, Drain(), XrdXrootdProtocol::getDump(), inFlight, isDone, Protocol, Recycle(), and TRACEP.
Referenced by XrdXrootdNormAio::Write(), and XrdXrootdPgrwAio::Write().
|
overrideprotected |
Definition at line 198 of file XrdXrootdAioTask.cc.
References aioDead, XrdXrootdFile::aioFob, aioRead, aioState, XrdJob::Comment, dataFile, dataLen, dataLink, DEBUG, Drain(), XrdXrootd::eLog, XrdSysError::Emsg(), XrdXrootdFile::FileKey, XrdLink::ID, inFlight, isDone, Protocol, Recycle(), XrdXrootdAioFob::Reset(), and TRACEP.
|
protected |
Definition at line 232 of file XrdXrootdAioTask.cc.
References aioMutex, aioRead, aioState, inFlight, XrdSysMutex::Lock(), XrdXrootdAioBuff::next, pendQ, pendQEnd, SendError(), and XrdSysMutex::UnLock().
const char * XrdXrootdAioTask::ID | ( | ) |
Definition at line 269 of file XrdXrootdAioTask.cc.
References dataLink, and XrdLink::ID.
void XrdXrootdAioTask::Init | ( | XrdXrootdProtocol * | protP, |
XrdXrootdResponse & | resp, | ||
XrdXrootdFile * | fP ) |
Definition at line 275 of file XrdXrootdAioTask.cc.
References aioState, dataFile, dataLink, inFlight, isDone, pendQ, pendQEnd, Protocol, Response, Running, Status, and XrdXrootdResponse::theLink().
Referenced by XrdXrootdNormAio::Alloc(), and XrdXrootdPgrwAio::Alloc().
|
pure virtual |
Implemented in XrdXrootdNormAio, and XrdXrootdPgrwAio.
|
pure virtual |
Implemented in XrdXrootdNormAio, and XrdXrootdPgrwAio.
Referenced by Completed(), gdDone(), gdFail(), XrdXrootdAioFob::Reset(), and XrdXrootdAioFob::Reset().
|
protected |
Definition at line 298 of file XrdXrootdAioTask.cc.
References aioDead, aioRead, aioState, dataFile, dataLen, dataLink, XrdXrootd::eLog, XrdSysError::Emsg(), XrdXrootdFile::FileKey, XrdLink::ID, isDone, XProtocol::mapError(), Response, XrdXrootdResponse::Send(), and XrdSysE2T().
Referenced by getBuff(), SendFSError(), and Validate().
|
protected |
Definition at line 328 of file XrdXrootdAioTask.cc.
References aioDead, aioRead, aioState, dataFile, dataLen, dataLink, XrdXrootd::eLog, XrdSysError::Emsg(), eMsg, XrdSfsFile::error, XrdOucErrInfo::extData(), XrdXrootdFile::FileKey, XrdOucErrInfo::getErrText(), XrdLink::ID, isDone, XProtocol::mapError(), XrdOucErrInfo::Reset(), Response, XrdXrootdResponse::Send(), SendError(), SFS_ERROR, and XrdXrootdFile::XrdSfsp.
|
inline |
Definition at line 63 of file XrdXrootdAioTask.hh.
References Protocol.
Referenced by XrdXrootdAioBuff::Alloc(), XrdXrootdAioPgrw::Alloc(), XrdXrootdAioBuff::Recycle(), and XrdXrootdAioPgrw::Recycle().
|
protected |
Definition at line 366 of file XrdXrootdAioTask.cc.
References aiocb::aio_nbytes, aiocb::aio_offset, dataLen, highOffset, isDone, XrdSfsAio::Result, SendError(), and XrdSfsAio::sfsAio.
|
pure virtual |
Implemented in XrdXrootdNormAio, and XrdXrootdPgrwAio.
|
friend |
Definition at line 49 of file XrdXrootdAioTask.hh.
union { ... } XrdXrootdAioTask |
union { ... } XrdXrootdAioTask |
|
staticprotected |
Definition at line 115 of file XrdXrootdAioTask.hh.
Referenced by gdFail(), SendError(), and SendFSError().
|
staticprotected |
Definition at line 116 of file XrdXrootdAioTask.hh.
Referenced by XrdXrootdNormAio::Recycle(), and XrdXrootdPgrwAio::Recycle().
|
protected |
Definition at line 86 of file XrdXrootdAioTask.hh.
Referenced by Completed(), Drain(), and getBuff().
|
staticprotected |
Definition at line 117 of file XrdXrootdAioTask.hh.
Referenced by XrdXrootdPgrwAio::Read().
|
staticprotected |
Definition at line 118 of file XrdXrootdAioTask.hh.
Referenced by XrdXrootdNormAio::DoIt(), XrdXrootdPgrwAio::DoIt(), Drain(), gdFail(), getBuff(), XrdXrootdNormAio::Read(), XrdXrootdPgrwAio::Read(), XrdXrootdNormAio::Recycle(), XrdXrootdPgrwAio::Recycle(), SendError(), and SendFSError().
|
protected |
Definition at line 87 of file XrdXrootdAioTask.hh.
Referenced by Completed().
|
staticprotected |
Definition at line 119 of file XrdXrootdAioTask.hh.
|
protected |
Definition at line 106 of file XrdXrootdAioTask.hh.
Referenced by XrdXrootdNormAio::DoIt(), XrdXrootdPgrwAio::DoIt(), Drain(), gdFail(), getBuff(), Init(), XrdXrootdNormAio::Read(), XrdXrootdPgrwAio::Read(), XrdXrootdNormAio::Recycle(), XrdXrootdPgrwAio::Recycle(), SendError(), SendFSError(), XrdXrootdNormAio::Write(), and XrdXrootdPgrwAio::Write().
|
protected |
Definition at line 98 of file XrdXrootdAioTask.hh.
Referenced by Drain(), gdFail(), Init(), XrdXrootdNormAio::Read(), XrdXrootdPgrwAio::Read(), XrdXrootdNormAio::Recycle(), XrdXrootdPgrwAio::Recycle(), SendError(), and SendFSError().
|
protected |
Definition at line 104 of file XrdXrootdAioTask.hh.
Referenced by gdDone(), gdFail(), XrdXrootdNormAio::Read(), XrdXrootdPgrwAio::Read(), SendError(), SendFSError(), Validate(), XrdXrootdNormAio::Write(), and XrdXrootdPgrwAio::Write().
|
protected |
Definition at line 97 of file XrdXrootdAioTask.hh.
Referenced by Drain(), gdFail(), ID(), Init(), XrdXrootdNormAio::Read(), XrdXrootdPgrwAio::Read(), XrdXrootdNormAio::Recycle(), XrdXrootdPgrwAio::Recycle(), SendError(), and SendFSError().
|
protected |
Definition at line 103 of file XrdXrootdAioTask.hh.
Referenced by XrdXrootdNormAio::Read(), XrdXrootdPgrwAio::Read(), XrdXrootdNormAio::Write(), and XrdXrootdPgrwAio::Write().
|
protected |
Definition at line 102 of file XrdXrootdAioTask.hh.
Referenced by XrdXrootdNormAio::Read(), XrdXrootdPgrwAio::Read(), Validate(), XrdXrootdNormAio::Write(), and XrdXrootdPgrwAio::Write().
|
protected |
Definition at line 107 of file XrdXrootdAioTask.hh.
Referenced by Completed(), Drain(), gdDone(), gdFail(), getBuff(), and Init().
|
protected |
Definition at line 108 of file XrdXrootdAioTask.hh.
Referenced by Completed(), Drain(), gdDone(), gdFail(), Init(), XrdXrootdNormAio::Recycle(), XrdXrootdPgrwAio::Recycle(), SendError(), SendFSError(), and Validate().
|
staticprotected |
Definition at line 123 of file XrdXrootdAioTask.hh.
Referenced by Completed(), and Drain().
|
protected |
Definition at line 88 of file XrdXrootdAioTask.hh.
Referenced by Completed(), Drain(), getBuff(), and Init().
|
protected |
Definition at line 89 of file XrdXrootdAioTask.hh.
Referenced by Completed(), Drain(), getBuff(), and Init().
|
protected |
Definition at line 96 of file XrdXrootdAioTask.hh.
Referenced by gdDone(), gdFail(), Init(), XrdXrootdNormAio::Read(), XrdXrootdPgrwAio::Read(), XrdXrootdNormAio::Recycle(), XrdXrootdPgrwAio::Recycle(), XrdXrootdAioFob::Schedule(), urProtocol(), XrdXrootdNormAio::Write(), and XrdXrootdPgrwAio::Write().
|
protected |
Definition at line 111 of file XrdXrootdAioTask.hh.
Referenced by Init(), SendError(), and SendFSError().
|
staticprotected |
Definition at line 124 of file XrdXrootdAioTask.hh.
Referenced by Completed(), and Init().
|
protected |
Definition at line 109 of file XrdXrootdAioTask.hh.
Referenced by Completed(), Drain(), Init(), XrdXrootdNormAio::Recycle(), and XrdXrootdPgrwAio::Recycle().
|
staticprotected |
Definition at line 84 of file XrdXrootdAioTask.hh.
|
staticprotected |
Definition at line 125 of file XrdXrootdAioTask.hh.
Referenced by Completed().