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] |