xrootd
|
#include <XrdXrootdAio.hh>
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 = "Aio" |
static XrdBuffManager * | BPool |
static XrdScheduler * | Sched |
static XrdXrootdStats * | SI |
static XrdSysMutex | fqMutex |
static XrdXrootdAio * | fqFirst = 0 |
static int | maxAio |
Friends | |
class | XrdXrootdAioReq |
XrdXrootdAio::XrdXrootdAio | ( | ) | [inline] |
References aioReq, buffp, and Next.
Referenced by addBlock().
XrdXrootdAio::~XrdXrootdAio | ( | ) | [inline] |
XrdXrootdAio * XrdXrootdAio::addBlock | ( | ) | [static, private] |
References DEBUG, fqFirst, maxAio, Next, TRACE, and XrdXrootdAio().
Referenced by Alloc(), and XrdXrootdAioReq::Init().
XrdXrootdAio * XrdXrootdAio::Alloc | ( | XrdXrootdAioReq * | arp, |
int | bsize = 0 |
||
) | [static, private] |
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().
void XrdXrootdAio::doneRead | ( | ) | [virtual] |
Implements XrdSfsAio.
References XrdXrootdAioReq::aioDone, XrdXrootdAioReq::aioError, aioReq, XrdXrootdAioReq::aioTotal, XrdSfsAio::Result, Sched, and XrdScheduler::Schedule().
void XrdXrootdAio::doneWrite | ( | ) | [virtual] |
Implements XrdSfsAio.
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 | ( | void | ) | [virtual] |
Implements XrdSfsAio.
References XrdXrootdStats::AsyncNow, BPool, buffp, fqFirst, fqMutex, XrdSysMutex::Lock(), Next, XrdBuffManager::Release(), SI, and XrdSysMutex::UnLock().
Referenced by Alloc(), doneWrite(), XrdXrootdAioReq::Init(), and XrdXrootdAioReq::Recycle().
friend class XrdXrootdAioReq [friend] |
XrdXrootdAioReq* XrdXrootdAio::aioReq [private] |
Referenced by Alloc(), doneRead(), doneWrite(), and XrdXrootdAio().
XrdBuffManager * XrdXrootdAio::BPool [static, private] |
Referenced by XrdXrootdProtocol::aio_WriteAll(), Alloc(), XrdXrootdAioReq::endRead(), XrdXrootdAioReq::Read(), Recycle(), and XrdXrootdAio().
XrdXrootdAio * XrdXrootdAio::fqFirst = 0 [static, private] |
Referenced by addBlock(), Alloc(), and Recycle().
XrdSysMutex XrdXrootdAio::fqMutex [static, private] |
int XrdXrootdAio::maxAio [static, private] |
Referenced by addBlock(), Alloc(), and XrdXrootdAioReq::Init().
XrdXrootdAio* XrdXrootdAio::Next [private] |
XrdScheduler * XrdXrootdAio::Sched [static, private] |
Referenced by doneRead(), and doneWrite().
XrdXrootdStats * XrdXrootdAio::SI [static, private] |
const char * XrdXrootdAio::TraceID = "Aio" [static, private] |