|
xrootd
|
#include <XrdPollPoll.hh>


Public Member Functions | |
| void | Detach (XrdLink *lp) |
| void | Disable (XrdLink *lp, const char *etxt=0) |
| int | Enable (XrdLink *lp) |
| void | Start (XrdSysSemaphore *syncp, int &rc) |
| XrdPollPoll (struct pollfd *pp, int numfd) | |
| ~XrdPollPoll () | |
Protected Member Functions | |
| void | doDetach (int pti) |
| void | Exclude (XrdLink *lp) |
| int | Include (XrdLink *lp) |
Private Member Functions | |
| void | doRequests (int maxreq) |
| void | dqLink (XrdLink *lp) |
| void | LogEvent (int req, int pollfd, int cmdfd) |
| void | Recover (int numleft) |
| void | Restart (int ecode) |
Private Attributes | |
| struct pollfd * | PollTab |
| int | PollTNum |
| XrdLink * | PollQ |
| XrdSysMutex | PollMutex |
| int | maxent |
| XrdPollPoll::XrdPollPoll | ( | struct pollfd * | pp, |
| int | numfd | ||
| ) |
| XrdPollPoll::~XrdPollPoll | ( | ) |
References PollTab.
| void XrdPollPoll::Disable | ( | XrdLink * | lp, |
| const char * | etxt = 0 |
||
| ) | [virtual] |
Implements XrdPoll.
References XrdPoll::PipeData::Arg, XrdPoll::CmdFD, XrdPoll::PipeData::DiFD, dqLink(), XrdSysError::Emsg(), XrdLink::FD, XrdPoll::Finish(), XrdLink::ID, XrdLink::inQ, XrdLink::isEnabled, XrdSysMutex::Lock(), XrdPoll::PipeData::Parms, XrdPoll::PID, XrdLink::PollEnt, XrdPoll::PollPipe, PollTab, XrdPoll::PipeData::Post, XrdPoll::PipeData::req, XrdScheduler::Schedule(), XrdPoll::PipeData::theSem, TRACEI, XrdSysMutex::UnLock(), XrdSysSemaphore::Wait(), and write().
Referenced by Exclude().
| void XrdPollPoll::doDetach | ( | int | pti | ) | [protected] |
References XrdSysError::Emsg(), pollfd::fd, XrdSysMutex::Lock(), PollMutex, PollTab, PollTNum, and XrdSysMutex::UnLock().
Referenced by doRequests().
| void XrdPollPoll::doRequests | ( | int | maxreq | ) | [private] |
References XrdPoll::PipeData::Arg, XrdPoll::PipeData::DiFD, doDetach(), XrdSysError::Emsg(), XrdPoll::PipeData::EnFD, pollfd::events, pollfd::fd, XrdLink::fd2link(), XrdPoll::getRequest(), XrdLink::isEnabled, LogEvent(), XrdPoll::numEnabled, XrdPoll::PipeData::Parms, XrdPoll::PID, POLLIN, POLLRDNORM, PollTab, PollTNum, XrdSysSemaphore::Post(), XrdPoll::PipeData::Post, XrdPoll::PipeData::req, XrdPoll::ReqBuff, XrdPoll::PipeData::RmFD, XrdPoll::PipeData::theSem, and TRACE.
Referenced by Start().
| void XrdPollPoll::dqLink | ( | XrdLink * | lp | ) | [private] |
References XrdSysError::Emsg(), XrdLink::ID, XrdLink::inQ, XrdSysMutex::Lock(), XrdLink::Next, PollMutex, PollQ, and XrdSysMutex::UnLock().
| int XrdPollPoll::Enable | ( | XrdLink * | lp | ) | [virtual] |
Implements XrdPoll.
References XrdPoll::PipeData::Arg, XrdPoll::CmdFD, XrdSysError::Emsg(), XrdPoll::PipeData::EnFD, XrdLink::FD, XrdLink::ID, XrdLink::inQ, XrdLink::isEnabled, XrdSysMutex::Lock(), XrdLink::Next, XrdPoll::PipeData::Parms, XrdPoll::PID, XrdLink::PollEnt, PollMutex, XrdPoll::PollPipe, PollQ, PollTab, XrdPoll::PipeData::req, TRACEI, XrdSysMutex::UnLock(), and write().
| void XrdPollPoll::Exclude | ( | XrdLink * | lp | ) | [protected, virtual] |
Implements XrdPoll.
References XrdPoll::PipeData::Arg, XrdPoll::CmdFD, Disable(), dqLink(), XrdSysError::Emsg(), XrdLink::FD, XrdLink::ID, XrdLink::inQ, XrdLink::isEnabled, XrdSysMutex::Lock(), XrdPoll::PipeData::Parms, XrdPoll::PID, XrdLink::PollEnt, XrdPoll::PollPipe, PollTab, XrdPoll::PipeData::Post, XrdPoll::PipeData::req, XrdPoll::PipeData::RmFD, XrdPoll::PipeData::theSem, TRACEI, XrdSysMutex::UnLock(), XrdSysSemaphore::Wait(), and write().
| int XrdPollPoll::Include | ( | XrdLink * | lp | ) | [protected, virtual] |
Implements XrdPoll.
References XrdSysError::Emsg(), pollfd::events, XrdLink::FD, pollfd::fd, XrdLink::ID, XrdSysMutex::Lock(), maxent, XrdLink::PollEnt, POLLIN, PollMutex, POLLRDNORM, PollTab, PollTNum, pollfd::revents, and XrdSysMutex::UnLock().
| void XrdPollPoll::LogEvent | ( | int | req, |
| int | pollfd, | ||
| int | cmdfd | ||
| ) | [private] |
References XrdPoll::PipeData::DiFD, XrdSysError::Emsg(), XrdPoll::PipeData::EnFD, XrdLink::fd2link(), XrdLink::ID, XrdPoll::PID, XrdPoll::PipeData::req, XrdPoll::ReqBuff, XrdPoll::PipeData::RmFD, and snprintf.
Referenced by doRequests().
| void XrdPollPoll::Recover | ( | int | numleft | ) | [private] |
References XrdSysError::Emsg(), pollfd::fd, XrdLink::fd2link(), XrdLink::ID, XrdLink::isEnabled, PollTab, PollTNum, and pollfd::revents.
Referenced by Start().
| void XrdPollPoll::Restart | ( | int | ecode | ) | [private] |
References XrdSysError::Emsg(), pollfd::fd, XrdPoll::Finish(), XrdSysMutex::Lock(), XrdLink::Next, XrdPoll::PID, XrdLink::PollEnt, PollMutex, PollQ, XrdScheduler::Schedule(), XrdPoll::TID, TRACE, and XrdSysMutex::UnLock().
Referenced by Start().
| void XrdPollPoll::Start | ( | XrdSysSemaphore * | syncp, |
| int & | rc | ||
| ) | [virtual] |
Implements XrdPoll.
References doRequests(), XrdSysError::Emsg(), pollfd::events, pollfd::fd, XrdPoll::Finish(), XrdLink::ID, XrdLink::inQ, XrdLink::isEnabled, XrdSysMutex::Lock(), XrdLink::Next, XrdJob::NextJob, XrdPoll::numEvents, XrdPoll::numInterrupts, poll(), XrdPoll::Poll2Text(), XrdLink::PollEnt, POLLIN, PollMutex, PollQ, POLLRDNORM, PollTab, PollTNum, XrdSysSemaphore::Post(), Recover(), XrdPoll::ReqFD, Restart(), pollfd::revents, XrdScheduler::Schedule(), and XrdSysMutex::UnLock().
int XrdPollPoll::maxent [private] |
Referenced by Include(), and XrdPollPoll().
XrdSysMutex XrdPollPoll::PollMutex [private] |
XrdLink* XrdPollPoll::PollQ [private] |
Referenced by dqLink(), Enable(), Restart(), Start(), and XrdPollPoll().
struct pollfd* XrdPollPoll::PollTab [private] |
Referenced by Disable(), doDetach(), doRequests(), Enable(), Exclude(), Include(), Recover(), Start(), XrdPollPoll(), and ~XrdPollPoll().
int XrdPollPoll::PollTNum [private] |
Referenced by doDetach(), doRequests(), Include(), Recover(), Start(), and XrdPollPoll().
1.7.3