xrootd
|
#include <XrdPollDev.hh>
Public Member Functions | |
void | Disable (XrdLink *lp, const char *etxt=0) |
int | Enable (XrdLink *lp) |
void | Start (XrdSysSemaphore *syncp, int &rc) |
XrdPollDev (struct pollfd *ptab, int numfd, int pfd) | |
~XrdPollDev () | |
Protected Member Functions | |
void | Exclude (XrdLink *lp) |
int | Include (XrdLink *lp) |
Private Member Functions | |
void | doRequests (int maxreq) |
void | LogEvent (struct pollfd *pp) |
int | sendCmd (char *cmdbuff, int cmdblen) |
Private Attributes | |
struct pollfd * | PollTab |
int | PollDfd |
int | PollMax |
XrdPollDev::XrdPollDev | ( | struct pollfd * | ptab, |
int | numfd, | ||
int | pfd | ||
) | [inline] |
void XrdPollDev::Disable | ( | XrdLink * | lp, |
const char * | etxt = 0 |
||
) | [virtual] |
Implements XrdPoll.
References XrdPoll::PipeData::Arg, XrdPoll::PipeData::DiFD, XrdSysError::Emsg(), XrdLink::FD, XrdPoll::Finish(), XrdLink::ID, XrdLink::isEnabled, XrdPoll::PipeData::Parms, XrdPoll::PID, XrdPoll::PipeData::Post, XrdPoll::PipeData::req, XrdScheduler::Schedule(), sendCmd(), XrdPoll::PipeData::theSem, TRACEI, and XrdSysSemaphore::Wait().
Referenced by Exclude().
void XrdPollDev::doRequests | ( | int | maxreq | ) | [private] |
References XrdPoll::PipeData::Arg, XrdPoll::PipeData::DiFD, XrdSysError::Emsg(), XrdPoll::PipeData::EnFD, pollfd::events, pollfd::fd, XrdLink::fd2link(), XrdPoll::getRequest(), XrdLink::isEnabled, XrdPoll::numEnabled, XrdPoll::PipeData::Parms, XrdPoll::PID, PollDfd, POLLIN, POLLRDNORM, XrdSysSemaphore::Post(), XrdPoll::PipeData::Post, XrdPoll::PipeData::req, XrdPoll::ReqBuff, XrdPoll::PipeData::theSem, TRACE, and write().
Referenced by Start().
int XrdPollDev::Enable | ( | XrdLink * | lp | ) | [virtual] |
Implements XrdPoll.
References XrdPoll::PipeData::Arg, XrdSysError::Emsg(), XrdPoll::PipeData::EnFD, XrdLink::FD, XrdLink::ID, XrdLink::isEnabled, XrdPoll::PipeData::Parms, XrdPoll::PipeData::req, and sendCmd().
void XrdPollDev::Exclude | ( | XrdLink * | lp | ) | [protected, virtual] |
Implements XrdPoll.
References Disable(), XrdSysError::Emsg(), XrdLink::ID, and XrdLink::isEnabled.
void XrdPollDev::LogEvent | ( | struct pollfd * | pp | ) | [private] |
References XrdSysError::Emsg(), pollfd::fd, and pollfd::revents.
Referenced by Start().
int XrdPollDev::sendCmd | ( | char * | cmdbuff, |
int | cmdblen | ||
) | [private] |
References XrdPoll::CmdFD, XrdSysMutex::Lock(), XrdPoll::PollPipe, XrdSysMutex::UnLock(), and write().
void XrdPollDev::Start | ( | XrdSysSemaphore * | syncp, |
int & | rc | ||
) | [virtual] |
Implements XrdPoll.
References doRequests(), XrdSysError::Emsg(), pollfd::events, pollfd::fd, XrdLink::fd2link(), XrdPoll::Finish(), XrdLink::ID, XrdLink::isEnabled, LogEvent(), XrdJob::NextJob, XrdPoll::numEvents, XrdPoll::Poll2Text(), PollDfd, POLLIN, PollMax, POLLRDNORM, PollTab, XrdSysSemaphore::Post(), XrdPoll::ReqFD, pollfd::revents, XrdScheduler::Schedule(), and write().
int XrdPollDev::PollDfd [private] |
Referenced by doRequests(), Start(), XrdPollDev(), and ~XrdPollDev().
int XrdPollDev::PollMax [private] |
Referenced by Start(), and XrdPollDev().
struct pollfd* XrdPollDev::PollTab [private] |
Referenced by Start(), XrdPollDev(), and ~XrdPollDev().