#include <XrdBwmLogger.hh>
Public Member Functions | |
void | Event (Info &eInfo) |
const char * | Prog () |
void | sendEvents (void) |
int | Start (XrdSysError *eobj) |
XrdBwmLogger (const char *Target) | |
~XrdBwmLogger () | |
Private Member Functions | |
int | Feed (const char *data, int dlen) |
XrdBwmLoggerMsg * | getMsg () |
void | retMsg (XrdBwmLoggerMsg *tp) |
Private Attributes | |
pthread_t | tid |
char * | theTarget |
XrdSysError * | eDest |
XrdOucProg * | theProg |
XrdSysMutex | qMut |
XrdSysSemaphore | qSem |
XrdBwmLoggerMsg * | msgFirst |
XrdBwmLoggerMsg * | msgLast |
XrdSysMutex | fMut |
XrdBwmLoggerMsg * | msgFree |
int | msgFD |
int | endIT |
int | msgsInQ |
char | theEOL |
Static Private Attributes | |
static const int | maxmInQ = 256 |
Classes | |
struct | Info |
Definition at line 22 of file XrdBwmLogger.hh.
XrdBwmLogger::XrdBwmLogger | ( | const char * | Target | ) |
XrdBwmLogger::~XrdBwmLogger | ( | ) |
Definition at line 82 of file XrdBwmLogger.cc.
References close, endIT, fMut, free(), XrdSysThread::Kill(), XrdSysMutex::Lock(), msgFD, msgFirst, msgFree, XrdBwmLoggerMsg::next, qMut, theProg, theTarget, tid, and XrdSysMutex::UnLock().
void XrdBwmLogger::Event | ( | Info & | eInfo | ) |
Definition at line 113 of file XrdBwmLogger.cc.
References XrdBwmLogger::Info::ATime, XrdBwmLogger::Info::BTime, XrdBwmLogger::Info::CTime, eDest, XrdSysError::Emsg(), XrdBwmLogger::Info::ESec, XrdBwmLogger::Info::Flow, getMsg(), XrdBwmLogger::Info::lclNode, XrdBwmLogger::Info::Lfn, XrdSysMutex::Lock(), msgFirst, msgLast, XrdBwmLoggerMsg::msgSize, XrdBwmLoggerMsg::next, XrdBwmLogger::Info::numqIn, XrdBwmLogger::Info::numqOut, XrdBwmLogger::Info::numqXeq, XrdSysSemaphore::Post(), qMut, qSem, XrdBwmLogger::Info::rmtNode, XrdBwmLogger::Info::Size, snprintf, XrdBwmLoggerMsg::Text, theEOL, XrdBwmLogger::Info::Tident, XrdBwmLoggerMsg::Tlen, and XrdSysMutex::UnLock().
Referenced by XrdBwmHandle::Retire().
const char* XrdBwmLogger::Prog | ( | ) | [inline] |
void XrdBwmLogger::sendEvents | ( | void | ) |
Definition at line 154 of file XrdBwmLogger.cc.
References endIT, XrdOucProg::Feed(), Feed(), XrdSysMutex::Lock(), msgFirst, msgLast, XrdBwmLoggerMsg::next, qMut, qSem, retMsg(), XrdBwmLoggerMsg::Text, theProg, XrdBwmLoggerMsg::Tlen, XrdSysMutex::UnLock(), and XrdSysSemaphore::Wait().
Referenced by XrdBwmLoggerSend().
int XrdBwmLogger::Start | ( | XrdSysError * | eobj | ) |
Definition at line 186 of file XrdBwmLogger.cc.
References XrdNetSocket::Create(), XrdNetSocket::Detach(), eDest, XrdSysError::Emsg(), msgFD, XrdSysThread::Run(), XrdOucProg::Setup(), XrdOucProg::Start(), theEOL, theProg, theTarget, tid, XrdBwmLoggerSend(), and XRDNET_FIFO.
Referenced by XrdBwm::Configure().
int XrdBwmLogger::Feed | ( | const char * | data, | |
int | dlen | |||
) | [private] |
Definition at line 236 of file XrdBwmLogger.cc.
References eDest, XrdSysError::Emsg(), msgFD, XrdSysError::Say(), size_t, theTarget, and write.
Referenced by sendEvents().
XrdBwmLoggerMsg * XrdBwmLogger::getMsg | ( | ) | [private] |
Definition at line 262 of file XrdBwmLogger.cc.
References fMut, XrdSysMutex::Lock(), maxmInQ, msgFree, msgsInQ, XrdBwmLoggerMsg::next, and XrdSysMutex::UnLock().
Referenced by Event().
void XrdBwmLogger::retMsg | ( | XrdBwmLoggerMsg * | tp | ) | [private] |
Definition at line 288 of file XrdBwmLogger.cc.
References fMut, XrdSysMutex::Lock(), msgFree, msgsInQ, XrdBwmLoggerMsg::next, and XrdSysMutex::UnLock().
Referenced by sendEvents().
pthread_t XrdBwmLogger::tid [private] |
Definition at line 58 of file XrdBwmLogger.hh.
Referenced by Start(), XrdBwmLogger(), and ~XrdBwmLogger().
char* XrdBwmLogger::theTarget [private] |
Definition at line 59 of file XrdBwmLogger.hh.
Referenced by Feed(), Prog(), Start(), XrdBwmLogger(), and ~XrdBwmLogger().
XrdSysError* XrdBwmLogger::eDest [private] |
Definition at line 60 of file XrdBwmLogger.hh.
Referenced by Event(), Feed(), Start(), and XrdBwmLogger().
XrdOucProg* XrdBwmLogger::theProg [private] |
Definition at line 61 of file XrdBwmLogger.hh.
Referenced by sendEvents(), Start(), XrdBwmLogger(), and ~XrdBwmLogger().
XrdSysMutex XrdBwmLogger::qMut [private] |
Definition at line 62 of file XrdBwmLogger.hh.
Referenced by Event(), sendEvents(), and ~XrdBwmLogger().
XrdSysSemaphore XrdBwmLogger::qSem [private] |
XrdBwmLoggerMsg* XrdBwmLogger::msgFirst [private] |
Definition at line 64 of file XrdBwmLogger.hh.
Referenced by Event(), sendEvents(), XrdBwmLogger(), and ~XrdBwmLogger().
XrdBwmLoggerMsg* XrdBwmLogger::msgLast [private] |
Definition at line 65 of file XrdBwmLogger.hh.
Referenced by Event(), sendEvents(), and XrdBwmLogger().
XrdSysMutex XrdBwmLogger::fMut [private] |
Definition at line 66 of file XrdBwmLogger.hh.
Referenced by getMsg(), retMsg(), and ~XrdBwmLogger().
XrdBwmLoggerMsg* XrdBwmLogger::msgFree [private] |
Definition at line 67 of file XrdBwmLogger.hh.
Referenced by getMsg(), retMsg(), XrdBwmLogger(), and ~XrdBwmLogger().
int XrdBwmLogger::msgFD [private] |
Definition at line 68 of file XrdBwmLogger.hh.
Referenced by Feed(), Start(), XrdBwmLogger(), and ~XrdBwmLogger().
int XrdBwmLogger::endIT [private] |
Definition at line 69 of file XrdBwmLogger.hh.
Referenced by sendEvents(), XrdBwmLogger(), and ~XrdBwmLogger().
int XrdBwmLogger::msgsInQ [private] |
const int XrdBwmLogger::maxmInQ = 256 [static, private] |
char XrdBwmLogger::theEOL [private] |