XRootD
XrdSys::IOEvents::PollerInit Class Reference
+ Inheritance diagram for XrdSys::IOEvents::PollerInit:
+ Collaboration diagram for XrdSys::IOEvents::PollerInit:

Public Member Functions

 PollerInit ()
 
 ~PollerInit ()
 
- Public Member Functions inherited from XrdSys::IOEvents::Poller
 Poller (int cFD, int rFD)
 
virtual ~Poller ()
 Destructor. Stop() is effecively called when this object is deleted. More...
 
void Stop ()
 

Static Public Attributes

static bool doTrace = (getenv("XrdSysIOE_TRACE") != 0)
 
static XrdSysMutex traceMTX
 

Protected Member Functions

void Begin (XrdSysSemaphore *syncp, int &rc, const char **eTxt)
 
void Exclude (Channel *cP, bool &isLocked, bool dover=1)
 
bool Include (Channel *cP, int &eNum, const char **eTxt, bool &isLocked)
 
bool Modify (Channel *cP, int &eNum, const char **eTxt, bool &isLocked)
 
void Shutdown ()
 
- Protected Member Functions inherited from XrdSys::IOEvents::Poller
void CbkTMO ()
 
bool CbkXeq (Channel *cP, int events, int eNum, const char *eTxt)
 
 CPP_ATOMIC_TYPE (bool) wakePend
 
int GetFault (Channel *cP)
 
int GetPollEnt (Channel *cP)
 
int GetRequest ()
 
bool Init (Channel *cP, int &eNum, const char **eTxt, bool &isLockd)
 
void LockChannel (Channel *cP)
 
int Poll2Enum (short events)
 
int SendCmd (PipeData &cmd)
 
void SetPollEnt (Channel *cP, int ptEnt)
 
bool TmoAdd (Channel *cP, int tmoSet)
 
void TmoDel (Channel *cP)
 
int TmoGet ()
 
void UnLockChannel (Channel *cP)
 

Additional Inherited Members

- Public Types inherited from XrdSys::IOEvents::Poller
enum  CreateOpts { optTOM }
 
- Static Public Member Functions inherited from XrdSys::IOEvents::Poller
static PollerCreate (int &eNum, const char **eTxt=0, int crOpts=0)
 
- Protected Attributes inherited from XrdSys::IOEvents::Poller
ChannelattBase
 
bool chDead
 
int cmdFD
 
int pipeBlen
 
char * pipeBuff
 
struct pollfd pipePoll
 
pthread_t pollTid
 
PipeData reqBuff
 
int reqFD
 
ChanneltmoBase
 
unsigned char tmoMask
 
- Static Protected Attributes inherited from XrdSys::IOEvents::Poller
static time_t maxTime = (sizeof(time_t) == 8 ? 0x7fffffffffffffffLL : 0x7fffffff)
 
static pid_t parentPID = getpid()
 

Detailed Description

Definition at line 205 of file XrdSysIOEvents.cc.

Constructor & Destructor Documentation

◆ PollerInit()

XrdSys::IOEvents::PollerInit::PollerInit ( )
inline

Definition at line 209 of file XrdSysIOEvents.cc.

209 : Poller(-1, -1) {}
Poller(int cFD, int rFD)

◆ ~PollerInit()

XrdSys::IOEvents::PollerInit::~PollerInit ( )
inline

Definition at line 210 of file XrdSysIOEvents.cc.

210 {}

Member Function Documentation

◆ Begin()

void XrdSys::IOEvents::PollerInit::Begin ( XrdSysSemaphore syncp,
int &  rc,
const char **  eTxt 
)
inlineprotectedvirtual

Start the polling event loop. An implementation must be supplied. Begin() is called via the internal BootStrap class from a new thread.

Implements XrdSys::IOEvents::Poller.

Definition at line 217 of file XrdSysIOEvents.cc.

217 {}

◆ Exclude()

void XrdSys::IOEvents::PollerInit::Exclude ( Channel cP,
bool &  isLocked,
bool  dover = 1 
)
inlineprotectedvirtual

Remove a channel to the poll set. An implementation must be supplied. The channel is locked when this method is called but must be unlocked by the method if a command is sent to the poller thread and isLocked set to false.

Implements XrdSys::IOEvents::Poller.

Definition at line 219 of file XrdSysIOEvents.cc.

219 {}

◆ Include()

bool XrdSys::IOEvents::PollerInit::Include ( Channel cP,
int &  eNum,
const char **  eTxt,
bool &  isLocked 
)
inlineprotectedvirtual

Add a channel to the poll set. An implementation must be supplied. The channel is locked when this method is called but must be unlocked by the method if a command is sent to the poller thread and isLocked set to false.

Implements XrdSys::IOEvents::Poller.

Definition at line 221 of file XrdSysIOEvents.cc.

222  {eNum = EPROTO;
223  if (eTxt) *eTxt = "initializing channel";
224  return false;
225  }

◆ Modify()

bool XrdSys::IOEvents::PollerInit::Modify ( Channel cP,
int &  eNum,
const char **  eTxt,
bool &  isLocked 
)
inlineprotectedvirtual

Modify the event status of a channel. An implementation must be supplied. The channel is locked when this method is called but must be unlocked by the method if a command is sent to the poller thread and isLocked set to false.

Implements XrdSys::IOEvents::Poller.

Definition at line 227 of file XrdSysIOEvents.cc.

228  {bool rc = Init(cP, eNum, eTxt, isLocked);
229  IF_TRACE(Modify,cP->GetFD(), "Init() returned " <<BOOLNAME(rc));
230  return rc;
231  }
#define IF_TRACE(x, fd, y)
#define BOOLNAME(x)
bool Modify(Channel *cP, int &eNum, const char **eTxt, bool &isLocked)
bool Init(Channel *cP, int &eNum, const char **eTxt, bool &isLockd)

References BOOLNAME, XrdSys::IOEvents::Channel::GetFD(), IF_TRACE, and XrdSys::IOEvents::Poller::Init().

+ Here is the call graph for this function:

◆ Shutdown()

void XrdSys::IOEvents::PollerInit::Shutdown ( )
inlineprotectedvirtual

Shutdown the poller. An implementation must be supplied. The shutdown method must release any allocated storage and close private file descriptors. The polling thread will have already been terminated and x-thread pipe closed. Warning: the derived destructor must call Stop() and do nothing else!

Implements XrdSys::IOEvents::Poller.

Definition at line 233 of file XrdSysIOEvents.cc.

233 {}

Member Data Documentation

◆ doTrace

bool XrdSys::IOEvents::PollerInit::doTrace = (getenv("XrdSysIOE_TRACE") != 0)
static

Definition at line 213 of file XrdSysIOEvents.cc.

◆ traceMTX

XrdSysMutex XrdSys::IOEvents::PollerInit::traceMTX
static

Definition at line 212 of file XrdSysIOEvents.cc.


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