1#ifndef __XRDSYSIOEVENTS_HH__
2#define __XRDSYSIOEVENTS_HH__
131virtual void Fatal(
Channel *chP,
void *cbArg,
int eNum,
const char *eTxt)
133 (void)chP; (void)cbArg; (void)eNum; (void)eTxt;
146virtual void Stop(
Channel *chP,
void *cbArg) { (void)chP; (void)cbArg;}
212 bool Disable(
int events,
const char **eText=0);
248 bool Enable(
int events,
int timeout=0,
const char **eText=0);
440 bool Init(
Channel *cP,
int &eNum,
const char **eTxt,
bool &isLockd);
Definition XrdSysPthread.hh:165
void Lock()
Definition XrdSysPthread.hh:222
void UnLock()
Definition XrdSysPthread.hh:224
Definition XrdSysPthread.hh:242
Definition XrdSysPthread.hh:494
Definition XrdSysIOEvents.hh:79
virtual void Fatal(Channel *chP, void *cbArg, int eNum, const char *eTxt)
Definition XrdSysIOEvents.hh:131
virtual bool Event(Channel *chP, void *cbArg, int evFlags)=0
CallBack()
Constructor.
Definition XrdSysIOEvents.hh:152
virtual ~CallBack()
Destructor.
Definition XrdSysIOEvents.hh:158
virtual void Stop(Channel *chP, void *cbArg)
Definition XrdSysIOEvents.hh:146
EventType
Events that may cause a callback object to be activated.
Definition XrdSysIOEvents.hh:87
@ ReadyToWrite
Writing won't block.
Definition XrdSysIOEvents.hh:90
@ ReadyToRead
New data has arrived.
Definition XrdSysIOEvents.hh:88
@ ReadTimeOut
Read timeout.
Definition XrdSysIOEvents.hh:89
@ WriteTimeOut
Write timeout.
Definition XrdSysIOEvents.hh:91
@ ValidEvents
Mask to test for valid events.
Definition XrdSysIOEvents.hh:92
Definition XrdSysIOEvents.hh:174
void SetCallBack(CallBack *cbP, void *cbArg=0)
time_t wrDL
Definition XrdSysIOEvents.hh:345
short chFault
Definition XrdSysIOEvents.hh:354
dlQ tmoList
Definition XrdSysIOEvents.hh:334
void GetCallBack(CallBack **cbP, void **cbArg)
CallBack * chCB
Definition XrdSysIOEvents.hh:338
int chWTO
Definition XrdSysIOEvents.hh:343
time_t deadLine
Definition XrdSysIOEvents.hh:346
EventCode
Event bits used to feed Enable() and Disable(); can be or'd.
Definition XrdSysIOEvents.hh:192
@ allEvents
All of the above.
Definition XrdSysIOEvents.hh:197
@ errorEvents
Error event non-r/w specific.
Definition XrdSysIOEvents.hh:195
@ stopEvent
Poller stop event.
Definition XrdSysIOEvents.hh:196
@ writeEvents
Write and Write Timeouts.
Definition XrdSysIOEvents.hh:193
@ rwEvents
Both of the above.
Definition XrdSysIOEvents.hh:194
@ readEvents
Read and Read Timeouts.
Definition XrdSysIOEvents.hh:192
int GetEvents()
Definition XrdSysIOEvents.hh:267
bool Enable(int events, int timeout=0, const char **eText=0)
void * chCBA
Definition XrdSysIOEvents.hh:339
Poller * chPoller
Definition XrdSysIOEvents.hh:336
~Channel()
Destuctor is private, use Delete() to delete this object.
Definition XrdSysIOEvents.hh:327
int chFD
Definition XrdSysIOEvents.hh:340
int pollEnt
Definition XrdSysIOEvents.hh:341
Status
Definition XrdSysIOEvents.hh:350
@ isCBMode
Definition XrdSysIOEvents.hh:350
@ isDead
Definition XrdSysIOEvents.hh:350
@ isClear
Definition XrdSysIOEvents.hh:350
char dlType
Definition XrdSysIOEvents.hh:347
char inTOQ
Definition XrdSysIOEvents.hh:351
int chRTO
Definition XrdSysIOEvents.hh:342
void Reset(Poller *thePoller, int fd, int eNum=0)
int GetFD()
Definition XrdSysIOEvents.hh:276
char inPSet
Definition XrdSysIOEvents.hh:352
time_t rdDL
Definition XrdSysIOEvents.hh:344
char reMod
Definition XrdSysIOEvents.hh:353
dlQ attList
Definition XrdSysIOEvents.hh:333
char chStat
Definition XrdSysIOEvents.hh:349
Channel(Poller *pollP, int fd, CallBack *cbP=0, void *cbArg=0)
char chEvents
Definition XrdSysIOEvents.hh:348
bool Disable(int events, const char **eText=0)
XrdSysRecMutex chMutex
Definition XrdSysIOEvents.hh:331
Poller * chPollXQ
Definition XrdSysIOEvents.hh:337
Definition XrdSysIOEvents.hh:372
virtual bool Modify(Channel *cP, int &eNum, const char **eTxt, bool &isLocked)=0
char * pipeBuff
Definition XrdSysIOEvents.hh:507
virtual bool Include(Channel *cP, int &eNum, const char **eTxt, bool &isLocked)=0
int GetFault(Channel *cP)
Definition XrdSysIOEvents.hh:437
Channel * attBase
Definition XrdSysIOEvents.hh:488
void LockChannel(Channel *cP)
Definition XrdSysIOEvents.hh:441
static Poller * Create(int &eNum, const char **eTxt=0, int crOpts=0)
Channel * tmoBase
Definition XrdSysIOEvents.hh:489
int GetPollEnt(Channel *cP)
Definition XrdSysIOEvents.hh:438
int reqFD
Definition XrdSysIOEvents.hh:495
pthread_t pollTid
Definition XrdSysIOEvents.hh:491
CPP_ATOMIC_TYPE(bool) wakePend
struct pollfd pipePoll
Definition XrdSysIOEvents.hh:493
virtual void Begin(XrdSysSemaphore *syncp, int &rc, const char **eTxt)=0
bool CbkXeq(Channel *cP, int events, int eNum, const char *eTxt)
XrdSysMutex toMutex
Definition XrdSysIOEvents.hh:529
virtual ~Poller()
Destructor. Stop() is effecively called when this object is deleted.
Definition XrdSysIOEvents.hh:430
int cmdFD
Definition XrdSysIOEvents.hh:494
static time_t maxTime
Definition XrdSysIOEvents.hh:513
int SendCmd(PipeData &cmd)
unsigned char tmoMask
Definition XrdSysIOEvents.hh:509
void UnLockChannel(Channel *cP)
Definition XrdSysIOEvents.hh:448
virtual void Shutdown()=0
int pipeBlen
Definition XrdSysIOEvents.hh:508
static Poller * newPoller(int pFD[2], int &eNum, const char **eTxt)
int Poll2Enum(short events)
friend class BootStrap
Definition XrdSysIOEvents.hh:373
virtual void Exclude(Channel *cP, bool &isLocked, bool dover=1)=0
PipeData reqBuff
Definition XrdSysIOEvents.hh:506
XrdSysMutex adMutex
Definition XrdSysIOEvents.hh:528
bool TmoAdd(Channel *cP, int tmoSet)
bool chDead
Definition XrdSysIOEvents.hh:511
CreateOpts
Definition XrdSysIOEvents.hh:398
@ optTOM
Definition XrdSysIOEvents.hh:398
void Detach(Channel *cP, bool &isLocked, bool keep=true)
void SetPollEnt(Channel *cP, int ptEnt)
static pid_t parentPID
Definition XrdSysIOEvents.hh:515
bool Init(Channel *cP, int &eNum, const char **eTxt, bool &isLockd)
Definition XrdClPollerBuiltIn.hh:28
Definition XrdSysIOEvents.hh:329
Channel * next
Definition XrdSysIOEvents.hh:329
Channel * prev
Definition XrdSysIOEvents.hh:329
Definition XrdSysIOEvents.hh:496
XrdSysSemaphore * theSem
Definition XrdSysIOEvents.hh:497
char evt
Definition XrdSysIOEvents.hh:496
char req
Definition XrdSysIOEvents.hh:496
cmd
Definition XrdSysIOEvents.hh:498
@ MiFD
Definition XrdSysIOEvents.hh:499
@ RmFD
Definition XrdSysIOEvents.hh:499
@ Post
Definition XrdSysIOEvents.hh:498
@ Stop
Definition XrdSysIOEvents.hh:499
@ MdFD
Definition XrdSysIOEvents.hh:498
@ NoOp
Definition XrdSysIOEvents.hh:498
int fd
Definition XrdSysIOEvents.hh:496
short ent
Definition XrdSysIOEvents.hh:496
~PipeData()
Definition XrdSysIOEvents.hh:504
PipeData(char reQ=0, char evT=0, short enT=0, int fD=0, XrdSysSemaphore *sP=0)
Definition XrdSysIOEvents.hh:500