xrootd
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Attributes | Static Private Attributes | List of all members
XrdPoll Class Referenceabstract

#include <XrdPoll.hh>

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

Classes

struct  PipeData
 

Public Member Functions

virtual void Disable (XrdLink *lp, const char *etxt=0)=0
 
virtual int Enable (XrdLink *lp)=0
 
virtual void Start (XrdSysSemaphore *syncp, int &rc)=0
 
 XrdPoll ()
 
virtual ~XrdPoll ()
 

Static Public Member Functions

static int Attach (XrdLink *lp)
 
static void Detach (XrdLink *lp)
 
static int Finish (XrdLink *lp, const char *etxt=0)
 
static void Init (XrdSysError *eP, XrdOucTrace *tP, XrdScheduler *sP)
 
static char * Poll2Text (short events)
 
static int Setup (int numfd)
 
static int Stats (char *buff, int blen, int do_sync=0)
 

Public Attributes

int PID
 
pthread_t TID
 

Static Public Attributes

static XrdPollPollers [XRD_NUMPOLLERS] = {0, 0, 0}
 

Protected Member Functions

int getRequest ()
 
virtual void Exclude (XrdLink *lp)=0
 
virtual int Include (XrdLink *lp)=0
 

Static Protected Member Functions

static XrdPollnewPoller (int pollid, int numfd)
 

Protected Attributes

XrdSysMutex PollPipe
 
struct pollfd PipePoll
 
int CmdFD
 
int ReqFD
 
PipeData ReqBuff
 
char * PipeBuff
 
int PipeBlen
 
int numEnabled
 
int numEvents
 
int numInterrupts
 

Static Protected Attributes

static const char * TraceID = "Poll"
 
static XrdOucTraceXrdTrace = 0
 
static XrdSysErrorXrdLog = 0
 
static XrdSchedulerXrdSched = 0
 

Private Attributes

int numAttached
 

Static Private Attributes

static XrdSysMutex doingAttach
 

Constructor & Destructor Documentation

XrdPoll::XrdPoll ( )
virtual XrdPoll::~XrdPoll ( )
inlinevirtual

Member Function Documentation

int XrdPoll::Attach ( XrdLink lp)
static
void XrdPoll::Detach ( XrdLink lp)
static
virtual void XrdPoll::Disable ( XrdLink lp,
const char *  etxt = 0 
)
pure virtual

Implemented in XrdPollE, XrdPollPoll, and XrdPollDev.

Referenced by XrdLinkScan::idleScan(), and XrdLink::Terminate().

virtual int XrdPoll::Enable ( XrdLink lp)
pure virtual

Implemented in XrdPollE, XrdPollPoll, and XrdPollDev.

Referenced by XrdLink::DoIt().

virtual void XrdPoll::Exclude ( XrdLink lp)
protectedpure virtual

Implemented in XrdPollE, XrdPollPoll, and XrdPollDev.

Referenced by Detach().

int XrdPoll::Finish ( XrdLink lp,
const char *  etxt = 0 
)
static
int XrdPoll::getRequest ( )
protected
virtual int XrdPoll::Include ( XrdLink lp)
protectedpure virtual

Implemented in XrdPollE, XrdPollPoll, and XrdPollDev.

Referenced by Attach().

static void XrdPoll::Init ( XrdSysError eP,
XrdOucTrace tP,
XrdScheduler sP 
)
inlinestatic

References XrdLog, XrdSched, and XrdTrace.

Referenced by XrdConfig::Setup().

XrdPoll * XrdPoll::newPoller ( int  pollid,
int  numfd 
)
staticprotected

References close(), XrdSysError::Emsg(), fcntl(), open(), and XrdLog.

Referenced by Setup().

char * XrdPoll::Poll2Text ( short  events)
static
int XrdPoll::Setup ( int  numfd)
static
virtual void XrdPoll::Start ( XrdSysSemaphore syncp,
int &  rc 
)
pure virtual

Implemented in XrdPollE, XrdPollPoll, and XrdPollDev.

Referenced by XrdStartPolling().

int XrdPoll::Stats ( char *  buff,
int  blen,
int  do_sync = 0 
)
static

Member Data Documentation

int XrdPoll::CmdFD
protected
XrdSysMutex XrdPoll::doingAttach
staticprivate

Referenced by Attach(), and Detach().

int XrdPoll::numAttached
private

Referenced by Attach(), Detach(), Stats(), and XrdPoll().

int XrdPoll::numEnabled
protected
int XrdPoll::numEvents
protected
int XrdPoll::numInterrupts
protected

Referenced by XrdPollPoll::Start(), Stats(), and XrdPoll().

int XrdPoll::PID
int XrdPoll::PipeBlen
protected

Referenced by getRequest(), and XrdPoll().

char* XrdPoll::PipeBuff
protected

Referenced by getRequest(), and XrdPoll().

struct pollfd XrdPoll::PipePoll
protected

Referenced by getRequest(), and XrdPoll().

XrdPoll * XrdPoll::Pollers = {0, 0, 0}
static

Referenced by Attach(), Setup(), and Stats().

XrdSysMutex XrdPoll::PollPipe
protected
PipeData XrdPoll::ReqBuff
protected
int XrdPoll::ReqFD
protected
pthread_t XrdPoll::TID
const char * XrdPoll::TraceID = "Poll"
staticprotected
XrdSysError * XrdPoll::XrdLog = 0
staticprotected
XrdScheduler * XrdPoll::XrdSched = 0
staticprotected
XrdOucTrace * XrdPoll::XrdTrace = 0
staticprotected

Referenced by Init().


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