xrootd
|
#include <XrdMonDecSink.hh>
Public Member Functions | |
XrdMonDecSink (const char *baseDir, const char *rtLogDir, int rtBufSize, bool saveTraces, int maxTraceLogSize) | |
~XrdMonDecSink () | |
void | init (dictid_t min, dictid_t max, const string &senderHP) |
sequen_t | lastSeq () const |
void | registerXrdRestart (kXR_int32 stod, senderid_t senderId) |
void | setLastSeq (sequen_t seq) |
void | addDictId (dictid_t xrdId, const char *theString, int len, senderid_t senderId) |
void | addStageInfo (dictid_t xrdId, const char *theString, int len, senderid_t senderId) |
void | addUserId (dictid_t xrdId, const char *theString, int len, senderid_t senderId) |
void | add (dictid_t xrdId, XrdMonDecTraceInfo &trace, senderid_t senderId) |
void | addUserDisconnect (dictid_t xrdId, kXR_int32 sec, kXR_int32 timestamp, senderid_t senderId) |
void | openFile (dictid_t dictId, kXR_int32 timestamp, senderid_t senderId, kXR_int64 fSize) |
void | closeFile (dictid_t dictId, kXR_int64 bytesR, kXR_int64 bytesW, kXR_int32 timestamp, senderid_t senderId) |
void | flushHistoryData () |
void | flushRealTimeData () |
void | reset (senderid_t senderId) |
Private Types | |
typedef map< dictid_t, XrdMonDecDictInfo * > | dmap_t |
typedef map< dictid_t, XrdMonDecUserInfo * > | umap_t |
typedef map< dictid_t, XrdMonDecDictInfo * > ::iterator | dmapitr_t |
typedef map< dictid_t, XrdMonDecUserInfo * > ::iterator | umapitr_t |
typedef vector < XrdMonDecTraceInfo > | TraceVector |
Private Member Functions | |
void | initRT (const char *rtLogDir, int rtBufSize) |
void | addVersion () |
void | loadUniqueIdsAndSeq () |
vector< XrdMonDecDictInfo * > | loadActiveDictInfo () |
void | flushClosedDicts () |
void | flushUserCache () |
void | flushTCache () |
void | checkpoint () |
void | openTraceFile (fstream &f) |
void | write2TraceFile (fstream &f, const char *buf, int len) |
void | registerLostPacket (dictid_t id, const char *descr) |
void | reportLostPackets () |
void | flushOneDMap (dmap_t *m, int &curLen, const int BUFSIZE, string &buf, fstream &fD) |
void | flushOneUMap (umap_t *m, int &curLen, const int BUFSIZE, string &buf, fstream &fD) |
void | resetDMap (senderid_t senderId) |
void | resetUMap (senderid_t senderId) |
Private Attributes | |
kXR_unt16 | _verFreqCount |
vector< dmap_t * > | _dCache |
vector< umap_t * > | _uCache |
XrdSysMutex | _dMutex |
XrdSysMutex | _uMutex |
XrdMonBufferedOutput * | _rtLogger |
bool | _saveTraces |
TraceVector | _tCache |
kXR_unt32 | _tCacheSize |
kXR_unt16 | _traceLogNumber |
kXR_int64 | _maxTraceLogSize |
map< dictid_t, long > | _lost |
sequen_t | _lastSeq |
dictid_t | _uniqueDictId |
dictid_t | _uniqueUserId |
string | _path |
string | _jnlPath |
string | _dictPath |
string | _userPath |
string | _rtFlagPath |
string | _rtMaxIdsPath |
string | _xrdRestartLog |
Static Private Attributes | |
static const kXR_unt16 | VER_FREQ = 1000 |
typedef map<dictid_t, XrdMonDecDictInfo*> XrdMonDecSink::dmap_t [private] |
typedef map<dictid_t, XrdMonDecDictInfo*>::iterator XrdMonDecSink::dmapitr_t [private] |
typedef vector<XrdMonDecTraceInfo> XrdMonDecSink::TraceVector [private] |
typedef map<dictid_t, XrdMonDecUserInfo*> XrdMonDecSink::umap_t [private] |
typedef map<dictid_t, XrdMonDecUserInfo*>::iterator XrdMonDecSink::umapitr_t [private] |
XrdMonDecSink::XrdMonDecSink | ( | const char * | baseDir, |
const char * | rtLogDir, | ||
int | rtBufSize, | ||
bool | saveTraces, | ||
int | maxTraceLogSize | ||
) |
References _dictPath, _jnlPath, _path, _saveTraces, _tCache, _tCacheSize, _userPath, _xrdRestartLog, access(), ERR_INVALIDARG, generateTimestamp(), initRT(), and loadUniqueIdsAndSeq().
XrdMonDecSink::~XrdMonDecSink | ( | ) |
void XrdMonDecSink::add | ( | dictid_t | xrdId, |
XrdMonDecTraceInfo & | trace, | ||
senderid_t | senderId | ||
) |
void XrdMonDecSink::addDictId | ( | dictid_t | xrdId, |
const char * | theString, | ||
int | len, | ||
senderid_t | senderId | ||
) |
References _dCache, _dMutex, _uniqueDictId, and XrdSysMutexHelper::Lock().
Referenced by XrdMonDecPacketDecoder::decodeDictPacket().
void XrdMonDecSink::addStageInfo | ( | dictid_t | xrdId, |
const char * | theString, | ||
int | len, | ||
senderid_t | senderId | ||
) |
References _rtLogger, _uniqueDictId, _verFreqCount, XrdMonBufferedOutput::add(), addVersion(), VER_FREQ, and XrdMonDecStageInfo::writeRT2Buffer().
Referenced by XrdMonDecPacketDecoder::decodeStagePacket().
void XrdMonDecSink::addUserDisconnect | ( | dictid_t | xrdId, |
kXR_int32 | sec, | ||
kXR_int32 | timestamp, | ||
senderid_t | senderId | ||
) |
References _rtLogger, _uCache, _uMutex, _verFreqCount, XrdMonBufferedOutput::add(), addVersion(), XrdMonDecUserInfo::DISCONNECT, XrdSysMutexHelper::Lock(), registerLostPacket(), and VER_FREQ.
Referenced by XrdMonDecPacketDecoder::decodeDisconnect().
void XrdMonDecSink::addUserId | ( | dictid_t | xrdId, |
const char * | theString, | ||
int | len, | ||
senderid_t | senderId | ||
) |
void XrdMonDecSink::addVersion | ( | ) | [private] |
References _rtLogger, XrdMonBufferedOutput::add(), and XRDMON_VERSION.
Referenced by addStageInfo(), addUserDisconnect(), addUserId(), closeFile(), initRT(), and openFile().
void XrdMonDecSink::checkpoint | ( | ) | [private] |
Referenced by ~XrdMonDecSink().
void XrdMonDecSink::closeFile | ( | dictid_t | dictId, |
kXR_int64 | bytesR, | ||
kXR_int64 | bytesW, | ||
kXR_int32 | timestamp, | ||
senderid_t | senderId | ||
) |
References _dCache, _dMutex, _rtLogger, _verFreqCount, XrdMonBufferedOutput::add(), addVersion(), XrdSysMutexHelper::Lock(), registerLostPacket(), and VER_FREQ.
Referenced by XrdMonDecPacketDecoder::decodeClose().
void XrdMonDecSink::flushClosedDicts | ( | ) | [private] |
References _dCache, _dictPath, _dMutex, flushOneDMap(), and XrdSysMutexHelper::Lock().
Referenced by flushHistoryData(), reset(), and ~XrdMonDecSink().
void XrdMonDecSink::flushHistoryData | ( | ) |
References flushClosedDicts(), and flushUserCache().
Referenced by XrdMonDecPacketDecoder::flushHistoryData().
void XrdMonDecSink::flushOneDMap | ( | dmap_t * | m, |
int & | curLen, | ||
const int | BUFSIZE, | ||
string & | buf, | ||
fstream & | fD | ||
) | [private] |
References XrdMonDecDictInfo::convert2string(), and XrdMonDecDictInfo::isClosed().
Referenced by flushClosedDicts().
void XrdMonDecSink::flushOneUMap | ( | umap_t * | m, |
int & | curLen, | ||
const int | BUFSIZE, | ||
string & | buf, | ||
fstream & | fD | ||
) | [private] |
References XrdMonDecUserInfo::convert2string(), and XrdMonDecUserInfo::readyToBeStored().
Referenced by flushUserCache().
void XrdMonDecSink::flushRealTimeData | ( | ) | [inline] |
References _rtLogger, and XrdMonBufferedOutput::flush().
Referenced by XrdMonDecPacketDecoder::flushRealTimeData().
void XrdMonDecSink::flushTCache | ( | ) | [private] |
References _tCache, and write2TraceFile().
Referenced by add(), and ~XrdMonDecSink().
void XrdMonDecSink::flushUserCache | ( | ) | [private] |
References _uCache, _uMutex, _userPath, flushOneUMap(), and XrdSysMutexHelper::Lock().
Referenced by flushHistoryData().
References loadActiveDictInfo().
Referenced by XrdMonDecPacketDecoder::init().
void XrdMonDecSink::initRT | ( | const char * | rtLogDir, |
int | rtBufSize | ||
) | [private] |
References _rtFlagPath, _rtLogger, _rtMaxIdsPath, _uniqueDictId, _uniqueUserId, access(), addVersion(), ERR_UNKNOWN, and unlink().
Referenced by XrdMonDecSink().
sequen_t XrdMonDecSink::lastSeq | ( | ) | const [inline] |
References _lastSeq.
Referenced by XrdMonDecPacketDecoder::lastSeq().
vector< XrdMonDecDictInfo * > XrdMonDecSink::loadActiveDictInfo | ( | ) | [private] |
void XrdMonDecSink::loadUniqueIdsAndSeq | ( | ) | [private] |
References _jnlPath, _lastSeq, _uniqueDictId, _uniqueUserId, and access().
Referenced by XrdMonDecSink().
void XrdMonDecSink::openFile | ( | dictid_t | dictId, |
kXR_int32 | timestamp, | ||
senderid_t | senderId, | ||
kXR_int64 | fSize | ||
) |
References _dCache, _dMutex, _rtLogger, _verFreqCount, XrdMonBufferedOutput::add(), addVersion(), XrdSysMutexHelper::Lock(), registerLostPacket(), and VER_FREQ.
Referenced by XrdMonDecPacketDecoder::decodeOpen().
void XrdMonDecSink::openTraceFile | ( | fstream & | f | ) | [private] |
Referenced by write2TraceFile().
void XrdMonDecSink::registerLostPacket | ( | dictid_t | id, |
const char * | descr | ||
) | [private] |
References _lost.
Referenced by add(), addUserDisconnect(), closeFile(), and openFile().
void XrdMonDecSink::registerXrdRestart | ( | kXR_int32 | stod, |
senderid_t | senderId | ||
) |
References _rtLogger, _xrdRestartLog, XrdMonBufferedOutput::add(), GMT, XrdMonSenderInfo::id2Host(), and timestamp2string().
Referenced by XrdMonDecPacketDecoder::operator()().
void XrdMonDecSink::reportLostPackets | ( | ) | [private] |
References _lost.
Referenced by ~XrdMonDecSink().
void XrdMonDecSink::reset | ( | senderid_t | senderId | ) |
References _dMutex, _uMutex, flushClosedDicts(), XrdSysMutexHelper::Lock(), resetDMap(), and resetUMap().
Referenced by XrdMonDecPacketDecoder::reset().
void XrdMonDecSink::resetDMap | ( | senderid_t | senderId | ) | [private] |
References _dCache.
Referenced by reset(), and ~XrdMonDecSink().
void XrdMonDecSink::resetUMap | ( | senderid_t | senderId | ) | [private] |
References _uCache.
Referenced by reset(), and ~XrdMonDecSink().
void XrdMonDecSink::setLastSeq | ( | sequen_t | seq | ) | [inline] |
References _lastSeq.
Referenced by XrdMonDecPacketDecoder::operator()().
void XrdMonDecSink::write2TraceFile | ( | fstream & | f, |
const char * | buf, | ||
int | len | ||
) | [private] |
References _maxTraceLogSize, _traceLogNumber, and openTraceFile().
Referenced by flushTCache().
vector< dmap_t* > XrdMonDecSink::_dCache [private] |
Referenced by add(), addDictId(), closeFile(), flushClosedDicts(), openFile(), resetDMap(), and ~XrdMonDecSink().
string XrdMonDecSink::_dictPath [private] |
Referenced by flushClosedDicts(), and XrdMonDecSink().
XrdSysMutex XrdMonDecSink::_dMutex [private] |
Referenced by add(), addDictId(), closeFile(), flushClosedDicts(), openFile(), reset(), and ~XrdMonDecSink().
string XrdMonDecSink::_jnlPath [private] |
Referenced by loadActiveDictInfo(), loadUniqueIdsAndSeq(), and XrdMonDecSink().
sequen_t XrdMonDecSink::_lastSeq [private] |
Referenced by lastSeq(), loadUniqueIdsAndSeq(), and setLastSeq().
map<dictid_t, long> XrdMonDecSink::_lost [private] |
Referenced by registerLostPacket(), reportLostPackets(), and ~XrdMonDecSink().
kXR_int64 XrdMonDecSink::_maxTraceLogSize [private] |
Referenced by write2TraceFile().
string XrdMonDecSink::_path [private] |
Referenced by XrdMonDecSink().
string XrdMonDecSink::_rtFlagPath [private] |
Referenced by initRT(), and ~XrdMonDecSink().
XrdMonBufferedOutput* XrdMonDecSink::_rtLogger [private] |
Referenced by addStageInfo(), addUserDisconnect(), addUserId(), addVersion(), closeFile(), flushRealTimeData(), initRT(), openFile(), registerXrdRestart(), and ~XrdMonDecSink().
string XrdMonDecSink::_rtMaxIdsPath [private] |
Referenced by initRT(), and ~XrdMonDecSink().
bool XrdMonDecSink::_saveTraces [private] |
Referenced by add(), and XrdMonDecSink().
TraceVector XrdMonDecSink::_tCache [private] |
Referenced by add(), flushTCache(), and XrdMonDecSink().
kXR_unt32 XrdMonDecSink::_tCacheSize [private] |
Referenced by add(), and XrdMonDecSink().
kXR_unt16 XrdMonDecSink::_traceLogNumber [private] |
Referenced by write2TraceFile().
vector< umap_t* > XrdMonDecSink::_uCache [private] |
Referenced by addUserDisconnect(), addUserId(), flushUserCache(), resetUMap(), and ~XrdMonDecSink().
XrdSysMutex XrdMonDecSink::_uMutex [private] |
Referenced by addUserDisconnect(), addUserId(), flushUserCache(), reset(), and ~XrdMonDecSink().
dictid_t XrdMonDecSink::_uniqueDictId [private] |
Referenced by addDictId(), addStageInfo(), initRT(), loadUniqueIdsAndSeq(), and ~XrdMonDecSink().
dictid_t XrdMonDecSink::_uniqueUserId [private] |
Referenced by addUserId(), initRT(), loadUniqueIdsAndSeq(), and ~XrdMonDecSink().
string XrdMonDecSink::_userPath [private] |
Referenced by flushUserCache(), and XrdMonDecSink().
kXR_unt16 XrdMonDecSink::_verFreqCount [private] |
Referenced by addStageInfo(), addUserDisconnect(), addUserId(), closeFile(), and openFile().
string XrdMonDecSink::_xrdRestartLog [private] |
Referenced by registerXrdRestart(), and XrdMonDecSink().
const kXR_unt16 XrdMonDecSink::VER_FREQ = 1000 [static, private] |
Referenced by addStageInfo(), addUserDisconnect(), addUserId(), closeFile(), and openFile().