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