#include <XrdXrootdAio.hh>
Inheritance diagram for XrdXrootdAio:
Public Member Functions | |
virtual void | doneRead () |
virtual void | doneWrite () |
virtual void | Recycle () |
XrdXrootdAio () | |
~XrdXrootdAio () | |
Public Attributes | |
XrdBuffer * | buffp |
Static Private Member Functions | |
static XrdXrootdAio * | Alloc (XrdXrootdAioReq *arp, int bsize=0) |
static XrdXrootdAio * | addBlock () |
Private Attributes | |
XrdXrootdAio * | Next |
XrdXrootdAioReq * | aioReq |
Static Private Attributes | |
static const char * | TraceID |
static XrdBuffManager * | BPool |
static XrdScheduler * | Sched |
static XrdXrootdStats * | SI |
static XrdSysMutex | fqMutex |
static XrdXrootdAio * | fqFirst |
static int | maxAio |
Friends | |
class | XrdXrootdAioReq |
Definition at line 35 of file XrdXrootdAio.hh.
XrdXrootdAio::XrdXrootdAio | ( | ) | [inline] |
XrdXrootdAio::~XrdXrootdAio | ( | ) | [inline] |
Definition at line 49 of file XrdXrootdAio.hh.
void XrdXrootdAio::doneRead | ( | ) | [virtual] |
Implements XrdSfsAio.
Definition at line 100 of file XrdXrootdAio.cc.
References XrdXrootdAioReq::aioDone, XrdXrootdAioReq::aioError, aioReq, XrdXrootdAioReq::aioTotal, XrdSfsAio::Result, Sched, and XrdScheduler::Schedule().
void XrdXrootdAio::doneWrite | ( | ) | [virtual] |
Implements XrdSfsAio.
Definition at line 125 of file XrdXrootdAio.cc.
References XrdXrootdAioReq::aioError, XrdXrootdAioReq::aioFree, aioReq, XrdXrootdAioReq::aioTotal, XrdXrootdAioReq::Link, XrdXrootdAioReq::Lock(), XrdXrootdAioReq::myIOLen, Next, XrdXrootdAioReq::numActive, Recycle(), XrdXrootdAioReq::reDrive, XrdSfsAio::Result, Sched, XrdScheduler::Schedule(), and XrdXrootdAioReq::UnLock().
void XrdXrootdAio::Recycle | ( | ) | [virtual] |
Implements XrdSfsAio.
Definition at line 170 of file XrdXrootdAio.cc.
References XrdXrootdStats::AsyncNow, BPool, buffp, fqFirst, fqMutex, XrdSysMutex::Lock(), Next, XrdBuffManager::Release(), SI, and XrdSysMutex::UnLock().
Referenced by XrdXrootdAioReq::Alloc(), Alloc(), doneWrite(), XrdXrootdAioReq::Init(), and XrdXrootdAioReq::Recycle().
XrdXrootdAio * XrdXrootdAio::Alloc | ( | XrdXrootdAioReq * | arp, | |
int | bsize = 0 | |||
) | [static, private] |
Definition at line 59 of file XrdXrootdAio.cc.
References addBlock(), aiocb::aio_buf, aioReq, XrdXrootdStats::AsyncMax, XrdXrootdStats::AsyncNow, BPool, XrdBuffer::buff, buffp, fqFirst, fqMutex, XrdLink::ID, XrdXrootdAioReq::Link, XrdSysMutex::Lock(), maxAio, Next, XrdBuffManager::Obtain(), Recycle(), XrdSfsAio::sfsAio, SI, XrdSfsAio::TIdent, and XrdSysMutex::UnLock().
Referenced by XrdXrootdAioReq::Alloc().
XrdXrootdAio * XrdXrootdAio::addBlock | ( | ) | [static, private] |
Definition at line 193 of file XrdXrootdAio.cc.
References DEBUG, fqFirst, i, maxAio, Next, and TRACE.
Referenced by Alloc(), and XrdXrootdAioReq::Init().
friend class XrdXrootdAioReq [friend] |
Definition at line 37 of file XrdXrootdAio.hh.
Definition at line 39 of file XrdXrootdAio.hh.
Referenced by XrdXrootdProtocol::aio_WriteAll(), Alloc(), XrdXrootdAioReq::endRead(), XrdXrootdAioReq::Read(), Recycle(), and XrdXrootdAio().
const char * XrdXrootdAio::TraceID [static, private] |
Definition at line 56 of file XrdXrootdAio.hh.
XrdBuffManager * XrdXrootdAio::BPool [static, private] |
Definition at line 57 of file XrdXrootdAio.hh.
Referenced by Alloc(), XrdXrootdAioReq::Init(), and Recycle().
XrdScheduler * XrdXrootdAio::Sched [static, private] |
Definition at line 58 of file XrdXrootdAio.hh.
Referenced by doneRead(), doneWrite(), and XrdXrootdAioReq::Init().
XrdXrootdStats * XrdXrootdAio::SI [static, private] |
Definition at line 59 of file XrdXrootdAio.hh.
Referenced by Alloc(), XrdXrootdAioReq::Init(), and Recycle().
XrdSysMutex XrdXrootdAio::fqMutex [static, private] |
XrdXrootdAio * XrdXrootdAio::fqFirst [static, private] |
int XrdXrootdAio::maxAio [static, private] |
Definition at line 62 of file XrdXrootdAio.hh.
Referenced by addBlock(), Alloc(), and XrdXrootdAioReq::Init().
XrdXrootdAio* XrdXrootdAio::Next [private] |
Definition at line 64 of file XrdXrootdAio.hh.
Referenced by addBlock(), XrdXrootdAioReq::Alloc(), Alloc(), doneWrite(), XrdXrootdAioReq::endRead(), XrdXrootdAioReq::getAio(), XrdXrootdAioReq::Pop(), XrdXrootdAioReq::Push(), XrdXrootdAioReq::Read(), Recycle(), XrdXrootdAioReq::Recycle(), and XrdXrootdAio().
XrdXrootdAioReq* XrdXrootdAio::aioReq [private] |
Definition at line 65 of file XrdXrootdAio.hh.
Referenced by Alloc(), doneRead(), doneWrite(), and XrdXrootdAio().