|
xrootd
|
#include <XrdPoll.hh>


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 XrdPoll * | Pollers [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 XrdPoll * | newPoller (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 XrdOucTrace * | XrdTrace = 0 |
| static XrdSysError * | XrdLog = 0 |
| static XrdScheduler * | XrdSched = 0 |
Private Attributes | |
| int | numAttached |
Static Private Attributes | |
| static XrdSysMutex | doingAttach |
| XrdPoll::XrdPoll | ( | ) |
References TID, numAttached, numEnabled, numEvents, numInterrupts, pipe, CmdFD, fcntl(), F_SETFD, FD_CLOEXEC, ReqFD, XrdLog, XrdSysError::Emsg(), PipeBuff, PipeBlen, PipePoll, pollfd::fd, pollfd::events, POLLIN, and POLLRDNORM.
| virtual XrdPoll::~XrdPoll | ( | ) | [inline, virtual] |
| int XrdPoll::Attach | ( | XrdLink * | lp | ) | [static] |
References doingAttach, XrdSysMutex::Lock(), Pollers, XRD_NUMPOLLERS, numAttached, Include(), XrdSysMutex::UnLock(), XrdLink::Poller, TRACEI, XrdLink::FD, and PID.
Referenced by XrdProtLoad::Process().
| void XrdPoll::Detach | ( | XrdLink * | lp | ) | [static] |
Reimplemented in XrdPollPoll.
References XrdLink::Poller, Exclude(), doingAttach, XrdSysMutex::Lock(), numAttached, XrdLog, XrdSysError::Emsg(), XrdLink::ID, XrdSysMutex::UnLock(), TRACEI, XrdLink::FD, and PID.
Referenced by XrdLink::Close().
| virtual void XrdPoll::Disable | ( | XrdLink * | lp, |
| const char * | etxt = 0 |
||
| ) | [pure virtual] |
Implemented in XrdPollPoll, XrdPollDev, and XrdPollE.
Referenced by XrdLink::Terminate(), and XrdLinkScan::idleScan().
| virtual int XrdPoll::Enable | ( | XrdLink * | lp | ) | [pure virtual] |
Implemented in XrdPollPoll, XrdPollDev, and XrdPollE.
Referenced by XrdLink::DoIt().
| virtual void XrdPoll::Exclude | ( | XrdLink * | lp | ) | [protected, pure virtual] |
Implemented in XrdPollPoll, XrdPollDev, and XrdPollE.
Referenced by Detach().
| int XrdPoll::Finish | ( | XrdLink * | lp, |
| const char * | etxt = 0 |
||
| ) | [static] |
References XrdLink::Protocol, TRACEI, XrdLink::FD, XrdLink::ProtoAlt, and XrdLink::Etext.
Referenced by XrdPollDev::Disable(), XrdPollDev::Start(), XrdPollE::Disable(), XrdPollE::Start(), XrdPollPoll::Disable(), XrdPollPoll::Start(), and XrdPollPoll::Restart().
| int XrdPoll::getRequest | ( | ) | [protected] |
References ssize_t, PipeBlen, PipeBuff, ReqBuff, poll(), PipePoll, read(), ReqFD, XrdLog, XrdSysError::Emsg(), TRACE, and PID.
Referenced by XrdPollDev::doRequests(), and XrdPollPoll::doRequests().
| virtual int XrdPoll::Include | ( | XrdLink * | lp | ) | [protected, pure virtual] |
Implemented in XrdPollPoll, XrdPollDev, and XrdPollE.
Referenced by Attach().
| static void XrdPoll::Init | ( | XrdSysError * | eP, |
| XrdOucTrace * | tP, | ||
| XrdScheduler * | sP | ||
| ) | [inline, static] |
References XrdLog, XrdTrace, and XrdSched.
Referenced by XrdConfig::Setup().
| XrdPoll * XrdPoll::newPoller | ( | int | pollid, |
| int | numfd | ||
| ) | [static, protected] |
References open(), XrdLog, XrdSysError::Emsg(), fcntl(), F_SETFD, FD_CLOEXEC, memalign, and close.
Referenced by Setup().
| char * XrdPoll::Poll2Text | ( | short | events | ) | [static] |
References POLLERR, POLLHUP, and POLLNVAL.
Referenced by XrdLink::Peek(), XrdLink::Recv(), XrdLink::RecvAll(), XrdPollDev::Start(), and XrdPollPoll::Start().
| int XrdPoll::Setup | ( | int | numfd | ) | [static] |
References XRD_NUMPOLLERS, Pollers, newPoller(), PID, XrdPollArg::Poller, XrdPollArg::retcode, TRACE, XrdSysThread::Run(), XrdStartPolling(), XRDSYSTHREAD_BIND, XrdLog, XrdSysError::Emsg(), and TID.
Referenced by XrdConfig::Setup().
| virtual void XrdPoll::Start | ( | XrdSysSemaphore * | syncp, |
| int & | rc | ||
| ) | [pure virtual] |
Implemented in XrdPollPoll, XrdPollDev, and XrdPollE.
Referenced by XrdStartPolling().
| int XrdPoll::Stats | ( | char * | buff, |
| int | blen, | ||
| int | do_sync = 0 |
||
| ) | [static] |
References XRD_NUMPOLLERS, Pollers, numAttached, numEnabled, numEvents, numInterrupts, and snprintf.
int XrdPoll::CmdFD [protected] |
Referenced by XrdPoll(), XrdPollDev::sendCmd(), XrdPollPoll::Disable(), XrdPollPoll::Enable(), and XrdPollPoll::Exclude().
XrdSysMutex XrdPoll::doingAttach [static, private] |
int XrdPoll::numAttached [private] |
int XrdPoll::numEnabled [protected] |
Referenced by XrdPoll(), Stats(), XrdPollDev::doRequests(), XrdPollE::Enable(), and XrdPollPoll::doRequests().
int XrdPoll::numEvents [protected] |
Referenced by XrdPoll(), Stats(), XrdPollDev::Start(), XrdPollE::Start(), and XrdPollPoll::Start().
int XrdPoll::numInterrupts [protected] |
Referenced by XrdPoll(), Stats(), and XrdPollPoll::Start().
| int XrdPoll::PID |
int XrdPoll::PipeBlen [protected] |
Referenced by XrdPoll(), and getRequest().
char* XrdPoll::PipeBuff [protected] |
Referenced by XrdPoll(), and getRequest().
struct pollfd XrdPoll::PipePoll [protected] |
Referenced by XrdPoll(), and getRequest().
XrdPoll * XrdPoll::Pollers = {0, 0, 0} [static] |
XrdSysMutex XrdPoll::PollPipe [protected] |
Referenced by XrdPollDev::sendCmd(), XrdPollPoll::Disable(), XrdPollPoll::Enable(), and XrdPollPoll::Exclude().
PipeData XrdPoll::ReqBuff [protected] |
Referenced by getRequest(), XrdPollDev::doRequests(), XrdPollPoll::doRequests(), and XrdPollPoll::LogEvent().
int XrdPoll::ReqFD [protected] |
Referenced by XrdPoll(), getRequest(), XrdPollDev::Start(), and XrdPollPoll::Start().
| pthread_t XrdPoll::TID |
Referenced by XrdPoll(), Setup(), and XrdPollPoll::Restart().
const char * XrdPoll::TraceID = "Poll" [static, protected] |
XrdSysError * XrdPoll::XrdLog = 0 [static, protected] |
Referenced by XrdPoll(), Detach(), getRequest(), Setup(), Init(), newPoller(), XrdPollDev::Disable(), XrdPollDev::Enable(), XrdPollDev::Exclude(), XrdPollDev::Start(), XrdPollDev::doRequests(), XrdPollDev::LogEvent(), XrdPollE::Disable(), XrdPollE::Enable(), XrdPollE::Exclude(), XrdPollE::Include(), XrdPollE::remFD(), XrdPollE::Start(), XrdPollPoll::Include(), XrdPollPoll::Disable(), XrdPollPoll::Enable(), XrdPollPoll::Exclude(), XrdPollPoll::Start(), XrdPollPoll::doDetach(), XrdPollPoll::doRequests(), XrdPollPoll::dqLink(), XrdPollPoll::LogEvent(), XrdPollPoll::Recover(), and XrdPollPoll::Restart().
XrdScheduler * XrdPoll::XrdSched = 0 [static, protected] |
XrdOucTrace * XrdPoll::XrdTrace = 0 [static, protected] |
Referenced by Init().
1.7.5