xrootd
Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
XrdXrootdAioReq Class Reference

#include <XrdXrootdAio.hh>

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

Public Member Functions

void DoIt ()
 
XrdXrootdAiogetAio ()
 
XrdXrootdAioPop ()
 
void Push (XrdXrootdAio *newp)
 
int Read ()
 
void Recycle (int deref=1, XrdXrootdAio *aiop=0)
 
int Write (XrdXrootdAio *aiop)
 
 XrdXrootdAioReq ()
 
 ~XrdXrootdAioReq ()
 
- Public Member Functions inherited from XrdJob
 XrdJob (const char *desc="")
 
virtual ~XrdJob ()
 

Static Public Member Functions

static XrdXrootdAioReqAlloc (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 XrdXrootdAioReqaddBlock ()
 

Private Attributes

XrdSysMutex aioMutex
 
XrdXrootdAioReqNext
 
off_t myOffset
 
int myIOLen
 
unsigned int Instance
 
XrdLinkLink
 
XrdXrootdFilemyFile
 
XrdXrootdAioaioDone
 
XrdXrootdAioaioFree
 
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 XrdSysErroreDest
 
static XrdSysMutex rqMutex
 
static XrdXrootdAioReqrqFirst = 0
 
static int QuantumMin
 
static int Quantum
 
static int QuantumMax
 
static int maxAioPR = 8
 
static int maxAioPR2 =16
 

Friends

class XrdXrootdAio
 

Additional Inherited Members

- Public Attributes inherited from XrdJob
XrdJobNextJob
 
const char * Comment
 

Constructor & Destructor Documentation

XrdXrootdAioReq::XrdXrootdAioReq ( )
inline

Referenced by addBlock().

XrdXrootdAioReq::~XrdXrootdAioReq ( )
inline

Member Function Documentation

XrdXrootdAioReq * XrdXrootdAioReq::addBlock ( )
staticprivate

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

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 ( )
inlinevirtual

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 ( )
inlineprivate
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(), XrdLink::ID, Link, and Recycle().

Referenced by endRead(), and endWrite().

void XrdXrootdAioReq::sendError ( char *  tident)
private
void XrdXrootdAioReq::UnLock ( )
inlineprivate
int XrdXrootdAioReq::Write ( XrdXrootdAio aiop)

Friends And Related Function Documentation

friend class XrdXrootdAio
friend

Member Data Documentation

XrdXrootdAio* XrdXrootdAioReq::aioDone
private
int XrdXrootdAioReq::aioError
private
XrdXrootdAio* XrdXrootdAioReq::aioFree
private
XrdSysMutex XrdXrootdAioReq::aioMutex
private

Referenced by Lock(), and UnLock().

int XrdXrootdAioReq::aioTotal
private
char XrdXrootdAioReq::aioType
private

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

XrdSysError * XrdXrootdAioReq::eDest
staticprivate

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

unsigned int XrdXrootdAioReq::Instance
private

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

char XrdXrootdAioReq::isLocked
private

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

XrdLink* XrdXrootdAioReq::Link
private
int XrdXrootdAioReq::maxAioPR = 8
staticprivate

Referenced by Alloc(), and Init().

int XrdXrootdAioReq::maxAioPR2 =16
staticprivate

Referenced by Alloc(), and Init().

XrdXrootdFile* XrdXrootdAioReq::myFile
private
int XrdXrootdAioReq::myIOLen
private
off_t XrdXrootdAioReq::myOffset
private

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

XrdXrootdAioReq* XrdXrootdAioReq::Next
private

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

int XrdXrootdAioReq::numActive
private
int XrdXrootdAioReq::Quantum
staticprivate

Referenced by Alloc(), and Init().

int XrdXrootdAioReq::QuantumMax
staticprivate

Referenced by Alloc(), and Init().

int XrdXrootdAioReq::QuantumMin
staticprivate

Referenced by Alloc(), and Init().

char XrdXrootdAioReq::reDrive
private
char XrdXrootdAioReq::respDone
private

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

XrdXrootdResponse XrdXrootdAioReq::Response
private

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

XrdXrootdAioReq * XrdXrootdAioReq::rqFirst = 0
staticprivate

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

XrdSysMutex XrdXrootdAioReq::rqMutex
staticprivate

Referenced by Alloc(), and Recycle().

const char * XrdXrootdAioReq::TraceID = "AioReq"
staticprivate

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