xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Friends | List of all members
XrdXrootdAioTask Class Referenceabstract

#include <XrdXrootdAioTask.hh>

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

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
 
XrdXrootdProtocolurProtocol ()
 
virtual int Write (long long offs, int dlen)=0
 
- Public Member Functions inherited from XrdJob
virtual void DoIt ()=0
 
 XrdJob (const char *desc="")
 
virtual ~XrdJob ()
 

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
 
XrdXrootdAioBuffgetBuff (bool wait)
 
void SendError (int rc, const char *eText)
 
void SendFSError (int rc)
 
bool Validate (XrdXrootdAioBuff *aioP)
 

Protected Attributes

XrdSysMutex aioMutex
 
XrdSysCondVar2 aioReady
 
XrdXrootdAioBuffpendQ
 
XrdXrootdAioBuffpendQEnd
 
union {
   XrdXrootdNormAio *   nextNorm
 
   XrdXrootdPgrwAio *   nextPgrw
 
   XrdXrootdAioTask *   nextTask
 
}; 
 
XrdXrootdProtocolProtocol
 
XrdLinkdataLink
 
XrdXrootdFiledataFile
 
union {
   XrdXrootdAioBuff *   finalRead
 
   XrdXrootdAioBuff *   pendWrite
 
}; 
 
off_t highOffset
 
off_t dataOffset
 
int dataLen
 
char aioState
 
RAtomic_uchar inFlight
 
RAtomic_bool isDone
 
char Status
 
XrdXrootdResponse Response
 

Static Protected Attributes

static const char * TraceID
 
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 int Waiting = 2
 

Private Member Functions

bool Wait4Buff (int maxWait=0)
 

Friends

class XrdXrootdAioFob
 

Additional Inherited Members

- Public Attributes inherited from XrdJob
XrdJobNextJob
 
const char * Comment
 

Constructor & Destructor Documentation

XrdXrootdAioTask::XrdXrootdAioTask ( const char *  what = "aio request")
inlineprotected
virtual XrdXrootdAioTask::~XrdXrootdAioTask ( )
inlineprotectedvirtual

Member Function Documentation

void XrdXrootdAioTask::Completed ( XrdXrootdAioBuff aioP)
virtual void XrdXrootdAioTask::CopyF2L ( )
protectedpure virtual

Implemented in XrdXrootdPgrwAio, and XrdXrootdNormAio.

virtual int XrdXrootdAioTask::CopyL2F ( )
protectedpure virtual

Implemented in XrdXrootdPgrwAio, and XrdXrootdNormAio.

virtual bool XrdXrootdAioTask::CopyL2F ( XrdXrootdAioBuff aioP)
protectedpure virtual

Implemented in XrdXrootdPgrwAio, and XrdXrootdNormAio.

bool XrdXrootdAioTask::Drain ( )
protected
int XrdXrootdAioTask::gdDone ( )
overrideprotected
void XrdXrootdAioTask::gdFail ( )
overrideprotected
XrdXrootdAioBuff* XrdXrootdAioTask::getBuff ( bool  wait)
protected
const char* XrdXrootdAioTask::ID ( )
void XrdXrootdAioTask::Init ( XrdXrootdProtocol protP,
XrdXrootdResponse resp,
XrdXrootdFile fP 
)
virtual void XrdXrootdAioTask::Read ( long long  offs,
int  dlen 
)
pure virtual

Implemented in XrdXrootdPgrwAio, and XrdXrootdNormAio.

virtual void XrdXrootdAioTask::Recycle ( bool  release)
pure virtual

Implemented in XrdXrootdPgrwAio, and XrdXrootdNormAio.

void XrdXrootdAioTask::SendError ( int  rc,
const char *  eText 
)
protected
void XrdXrootdAioTask::SendFSError ( int  rc)
protected
XrdXrootdProtocol* XrdXrootdAioTask::urProtocol ( )
inline
bool XrdXrootdAioTask::Validate ( XrdXrootdAioBuff aioP)
protected
bool XrdXrootdAioTask::Wait4Buff ( int  maxWait = 0)
private
virtual int XrdXrootdAioTask::Write ( long long  offs,
int  dlen 
)
pure virtual

Implemented in XrdXrootdPgrwAio, and XrdXrootdNormAio.

Friends And Related Function Documentation

friend class XrdXrootdAioFob
friend

Member Data Documentation

union { ... }
union { ... }
const int XrdXrootdAioTask::aioDead = 0x01
staticprotected
const int XrdXrootdAioTask::aioHeld = 0x02
staticprotected
XrdSysMutex XrdXrootdAioTask::aioMutex
protected
const int XrdXrootdAioTask::aioPage = 0x04
staticprotected
const int XrdXrootdAioTask::aioRead = 0x08
staticprotected
XrdSysCondVar2 XrdXrootdAioTask::aioReady
protected
const int XrdXrootdAioTask::aioSchd = 0x10
staticprotected
char XrdXrootdAioTask::aioState
protected
XrdXrootdFile* XrdXrootdAioTask::dataFile
protected
int XrdXrootdAioTask::dataLen
protected
XrdLink* XrdXrootdAioTask::dataLink
protected
off_t XrdXrootdAioTask::dataOffset
protected
XrdXrootdAioBuff* XrdXrootdAioTask::finalRead
off_t XrdXrootdAioTask::highOffset
protected
RAtomic_uchar XrdXrootdAioTask::inFlight
protected
RAtomic_bool XrdXrootdAioTask::isDone
protected
XrdXrootdNormAio* XrdXrootdAioTask::nextNorm
XrdXrootdPgrwAio* XrdXrootdAioTask::nextPgrw
XrdXrootdAioTask* XrdXrootdAioTask::nextTask
const int XrdXrootdAioTask::Offline = 0
staticprotected
XrdXrootdAioBuff* XrdXrootdAioTask::pendQ
protected
XrdXrootdAioBuff* XrdXrootdAioTask::pendQEnd
protected
XrdXrootdAioBuff* XrdXrootdAioTask::pendWrite
XrdXrootdProtocol* XrdXrootdAioTask::Protocol
protected
XrdXrootdResponse XrdXrootdAioTask::Response
protected
const int XrdXrootdAioTask::Running = 1
staticprotected
char XrdXrootdAioTask::Status
protected
const char* XrdXrootdAioTask::TraceID
staticprotected
const int XrdXrootdAioTask::Waiting = 2
staticprotected

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