xrootd
Loading...
Searching...
No Matches
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::XrdXrootdAioTask ( const char *  what = "aio request")
inlineprotected

◆ ~XrdXrootdAioTask()

virtual XrdXrootdAioTask::~XrdXrootdAioTask ( )
inlineprotectedvirtual

Member Function Documentation

◆ Completed()

void XrdXrootdAioTask::Completed ( XrdXrootdAioBuff aioP)

◆ CopyF2L()

virtual void XrdXrootdAioTask::CopyF2L ( )
protectedpure virtual

Implemented in XrdXrootdNormAio, and XrdXrootdPgrwAio.

◆ CopyL2F() [1/2]

virtual int XrdXrootdAioTask::CopyL2F ( )
protectedpure virtual

Implemented in XrdXrootdNormAio, and XrdXrootdPgrwAio.

◆ CopyL2F() [2/2]

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

Implemented in XrdXrootdNormAio, and XrdXrootdPgrwAio.

◆ Drain()

bool XrdXrootdAioTask::Drain ( )
protected

◆ gdDone()

int XrdXrootdAioTask::gdDone ( )
overrideprotected

◆ gdFail()

void XrdXrootdAioTask::gdFail ( )
overrideprotected

◆ getBuff()

XrdXrootdAioBuff * XrdXrootdAioTask::getBuff ( bool  wait)
protected

◆ ID()

const char * XrdXrootdAioTask::ID ( )

◆ Init()

void XrdXrootdAioTask::Init ( XrdXrootdProtocol protP,
XrdXrootdResponse resp,
XrdXrootdFile fP 
)

◆ Read()

virtual void XrdXrootdAioTask::Read ( long long  offs,
int  dlen 
)
pure virtual

Implemented in XrdXrootdNormAio, and XrdXrootdPgrwAio.

◆ Recycle()

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

Implemented in XrdXrootdNormAio, and XrdXrootdPgrwAio.

◆ SendError()

void XrdXrootdAioTask::SendError ( int  rc,
const char *  eText 
)
protected

◆ SendFSError()

void XrdXrootdAioTask::SendFSError ( int  rc)
protected

◆ urProtocol()

XrdXrootdProtocol * XrdXrootdAioTask::urProtocol ( )
inline

References Protocol.

◆ Validate()

bool XrdXrootdAioTask::Validate ( XrdXrootdAioBuff aioP)
protected

◆ Wait4Buff()

bool XrdXrootdAioTask::Wait4Buff ( int  maxWait = 0)
private

◆ Write()

virtual int XrdXrootdAioTask::Write ( long long  offs,
int  dlen 
)
pure virtual

Implemented in XrdXrootdNormAio, and XrdXrootdPgrwAio.

Friends And Related Symbol Documentation

◆ XrdXrootdAioFob

friend class XrdXrootdAioFob
friend

Member Data Documentation

◆ [union]

union { ... } XrdXrootdAioTask

◆ [union]

union { ... } XrdXrootdAioTask

◆ aioDead

const int XrdXrootdAioTask::aioDead = 0x01
staticprotected

◆ aioHeld

const int XrdXrootdAioTask::aioHeld = 0x02
staticprotected

◆ aioMutex

XrdSysMutex XrdXrootdAioTask::aioMutex
protected

◆ aioPage

const int XrdXrootdAioTask::aioPage = 0x04
staticprotected

◆ aioRead

const int XrdXrootdAioTask::aioRead = 0x08
staticprotected

◆ aioReady

XrdSysCondVar2 XrdXrootdAioTask::aioReady
protected

◆ aioSchd

const int XrdXrootdAioTask::aioSchd = 0x10
staticprotected

◆ aioState

char XrdXrootdAioTask::aioState
protected

◆ dataFile

XrdXrootdFile* XrdXrootdAioTask::dataFile
protected

◆ dataLen

int XrdXrootdAioTask::dataLen
protected

◆ dataLink

XrdLink* XrdXrootdAioTask::dataLink
protected

◆ dataOffset

off_t XrdXrootdAioTask::dataOffset
protected

◆ finalRead

XrdXrootdAioBuff* XrdXrootdAioTask::finalRead

◆ highOffset

off_t XrdXrootdAioTask::highOffset
protected

◆ inFlight

RAtomic_uchar XrdXrootdAioTask::inFlight
protected

◆ isDone

RAtomic_bool XrdXrootdAioTask::isDone
protected

◆ nextNorm

XrdXrootdNormAio* XrdXrootdAioTask::nextNorm

◆ nextPgrw

XrdXrootdPgrwAio* XrdXrootdAioTask::nextPgrw

◆ nextTask

XrdXrootdAioTask* XrdXrootdAioTask::nextTask

◆ Offline

const int XrdXrootdAioTask::Offline = 0
staticprotected

◆ pendQ

XrdXrootdAioBuff* XrdXrootdAioTask::pendQ
protected

◆ pendQEnd

XrdXrootdAioBuff* XrdXrootdAioTask::pendQEnd
protected

◆ pendWrite

XrdXrootdAioBuff* XrdXrootdAioTask::pendWrite

◆ Protocol

XrdXrootdProtocol* XrdXrootdAioTask::Protocol
protected

Referenced by urProtocol().

◆ Response

XrdXrootdResponse XrdXrootdAioTask::Response
protected

◆ Running

const int XrdXrootdAioTask::Running = 1
staticprotected

◆ Status

char XrdXrootdAioTask::Status
protected

◆ TraceID

const char* XrdXrootdAioTask::TraceID
staticprotected

◆ Waiting

const int XrdXrootdAioTask::Waiting = 2
staticprotected

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