xrootd
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends
XrdXrootdAioReq Class Reference

#include <XrdXrootdAio.hh>

Inheritance diagram for XrdXrootdAioReq:
Inheritance graph
[legend]
Collaboration diagram for XrdXrootdAioReq:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void DoIt ()
XrdXrootdAio * getAio ()
XrdXrootdAio * Pop ()
void Push (XrdXrootdAio *newp)
int Read ()
void Recycle (int deref=1, XrdXrootdAio *aiop=0)
int Write (XrdXrootdAio *aiop)
 XrdXrootdAioReq ()
 ~XrdXrootdAioReq ()

Static Public Member Functions

static XrdXrootdAioReq * Alloc (XrdXrootdProtocol *p, char iot, int numaio=0)
static void Init (int iosize, int maxaiopr, int maxaio=-80)

Private Member Functions

void Clear (XrdLink *lnkp)
void endRead ()
void endWrite ()
void Lock ()
void Scuttle (const char *opname)
void sendError (char *tident)
void UnLock ()

Static Private Member Functions

static XrdXrootdAioReq * addBlock ()

Private Attributes

XrdSysMutex aioMutex
XrdXrootdAioReq * Next
off_t myOffset
int myIOLen
unsigned int Instance
XrdLink * Link
XrdXrootdFile * myFile
XrdXrootdAio * aioDone
XrdXrootdAio * aioFree
int numActive
int aioTotal
int aioError
char aioType
char respDone
char isLocked
char reDrive
XrdXrootdResponse Response

Static Private Attributes

static const char * TraceID = "AioReq"
static XrdSysError * eDest
static XrdSysMutex rqMutex
static XrdXrootdAioReq * rqFirst = 0
static int QuantumMin
static int Quantum
static int QuantumMax
static int maxAioPR = 8
static int maxAioPR2 = 16

Friends

class XrdXrootdAio

Constructor & Destructor Documentation

XrdXrootdAioReq::XrdXrootdAioReq ( ) [inline]

Referenced by addBlock().

XrdXrootdAioReq::~XrdXrootdAioReq ( ) [inline]

Member Function Documentation

XrdXrootdAioReq * XrdXrootdAioReq::addBlock ( ) [static, private]

References XrdXrootdAioReq(), TRACE, DEBUG, Next, and rqFirst.

Referenced by Alloc(), and Init().

XrdXrootdAioReq * XrdXrootdAioReq::Alloc ( XrdXrootdProtocol *  p,
char  iot,
int  numaio = 0 
) [static]
void XrdXrootdAioReq::Clear ( XrdLink *  lnkp) [private]
void XrdXrootdAioReq::DoIt ( ) [inline, virtual]

Implements XrdJob.

References aioType, endRead(), and endWrite().

void XrdXrootdAioReq::endRead ( ) [private]
void XrdXrootdAioReq::endWrite ( ) [private]
XrdXrootdAio * XrdXrootdAioReq::getAio ( )
void XrdXrootdAioReq::Init ( int  iosize,
int  maxaiopr,
int  maxaio = -80 
) [static]
void XrdXrootdAioReq::Lock ( ) [inline, private]
XrdXrootdAio* XrdXrootdAioReq::Pop ( ) [inline]
void XrdXrootdAioReq::Push ( XrdXrootdAio *  newp) [inline]
int XrdXrootdAioReq::Read ( )
void XrdXrootdAioReq::Recycle ( int  deref = 1,
XrdXrootdAio *  aiop = 0 
)
void XrdXrootdAioReq::Scuttle ( const char *  opname) [private]

References eDest, XrdSysError::Emsg(), Link, XrdLink::ID, and Recycle().

Referenced by endRead(), and endWrite().

void XrdXrootdAioReq::sendError ( char *  tident) [private]
void XrdXrootdAioReq::UnLock ( ) [inline, private]
int XrdXrootdAioReq::Write ( XrdXrootdAio *  aiop)

Friends And Related Function Documentation

friend class XrdXrootdAio [friend]

Member Data Documentation

Referenced by Lock(), and UnLock().

char XrdXrootdAioReq::aioType [private]

Referenced by Alloc(), Recycle(), Clear(), sendError(), and DoIt().

XrdSysError * XrdXrootdAioReq::eDest [static, private]

Referenced by Init(), Scuttle(), and sendError().

unsigned int XrdXrootdAioReq::Instance [private]

Referenced by Alloc(), Clear(), endRead(), and endWrite().

char XrdXrootdAioReq::isLocked [private]

Referenced by Recycle(), Clear(), Lock(), and UnLock().

int XrdXrootdAioReq::maxAioPR = 8 [static, private]

Referenced by Alloc(), and Init().

int XrdXrootdAioReq::maxAioPR2 = 16 [static, private]

Referenced by Alloc(), and Init().

int XrdXrootdAioReq::myIOLen [private]
off_t XrdXrootdAioReq::myOffset [private]

Referenced by Alloc(), Read(), and Clear().

Referenced by Alloc(), Recycle(), addBlock(), and Clear().

int XrdXrootdAioReq::Quantum [static, private]

Referenced by Alloc(), and Init().

int XrdXrootdAioReq::QuantumMax [static, private]

Referenced by Alloc(), and Init().

int XrdXrootdAioReq::QuantumMin [static, private]

Referenced by Alloc(), and Init().

char XrdXrootdAioReq::reDrive [private]
char XrdXrootdAioReq::respDone [private]

Referenced by Recycle(), Clear(), endRead(), and sendError().

Referenced by Alloc(), endRead(), endWrite(), and sendError().

XrdXrootdAioReq * XrdXrootdAioReq::rqFirst = 0 [static, private]

Referenced by Alloc(), Recycle(), and addBlock().

Referenced by Alloc(), and Recycle().

const char * XrdXrootdAioReq::TraceID = "AioReq" [static, private]

The documentation for this class was generated from the following files: