xrootd
Loading...
Searching...
No Matches
XrdBwmLogger.hh
Go to the documentation of this file.
1#ifndef __XRDBWMLOGGER_H__
2#define __XRDBWMLOGGER_H__
3/******************************************************************************/
4/* */
5/* X r d B w m L o g g e r . h h */
6/* */
7/* (c) 2008 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* All Rights Reserved */
9/* Produced by Andrew Hanushevsky for Stanford University under contract */
10/* DE-AC02-76-SFO0515 with the Department of Energy */
11/* */
12/* This file is part of the XRootD software suite. */
13/* */
14/* XRootD is free software: you can redistribute it and/or modify it under */
15/* the terms of the GNU Lesser General Public License as published by the */
16/* Free Software Foundation, either version 3 of the License, or (at your */
17/* option) any later version. */
18/* */
19/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22/* License for more details. */
23/* */
24/* You should have received a copy of the GNU Lesser General Public License */
25/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27/* */
28/* The copyright holder's institutional names and contributor's names may not */
29/* be used to endorse or promote products derived from this software without */
30/* specific prior written permission of the institution or contributor. */
31/******************************************************************************/
32
33#include <strings.h>
35
36class XrdBwmLoggerMsg;
37class XrdOucProg;
38class XrdSysError;
39
41{
42public:
43
44struct Info
45 {const char *Tident;
46 const char *Lfn;
47 const char *lclNode;
48 const char *rmtNode;
49 time_t ATime; // Arrival
50 time_t BTime; // Begin
51 time_t CTime; // Complete
52 int numqIn;
55 long long Size;
56 int ESec;
57 char Flow; // I or O
58 };
59
60void Event(Info &eInfo);
61
62const char *Prog() {return theTarget;}
63
64void sendEvents(void);
65
66int Start(XrdSysError *eobj);
67
68 XrdBwmLogger(const char *Target);
70
71private:
72int Feed(const char *data, int dlen);
73XrdBwmLoggerMsg *getMsg();
74void retMsg(XrdBwmLoggerMsg *tp);
75
76pthread_t tid;
82XrdBwmLoggerMsg *msgFirst;
83XrdBwmLoggerMsg *msgLast;
85XrdBwmLoggerMsg *msgFree;
89static const int maxmInQ = 256;
90char theEOL;
91};
92#endif
Definition XrdBwmLogger.hh:41
static const int maxmInQ
Definition XrdBwmLogger.hh:89
XrdBwmLoggerMsg * msgLast
Definition XrdBwmLogger.hh:83
XrdSysError * eDest
Definition XrdBwmLogger.hh:78
XrdSysMutex qMut
Definition XrdBwmLogger.hh:80
int msgFD
Definition XrdBwmLogger.hh:86
XrdBwmLoggerMsg * getMsg()
const char * Prog()
Definition XrdBwmLogger.hh:62
int endIT
Definition XrdBwmLogger.hh:87
int msgsInQ
Definition XrdBwmLogger.hh:88
XrdBwmLoggerMsg * msgFree
Definition XrdBwmLogger.hh:85
int Feed(const char *data, int dlen)
XrdBwmLogger(const char *Target)
XrdBwmLoggerMsg * msgFirst
Definition XrdBwmLogger.hh:82
char theEOL
Definition XrdBwmLogger.hh:90
XrdSysSemaphore qSem
Definition XrdBwmLogger.hh:81
char * theTarget
Definition XrdBwmLogger.hh:77
XrdSysMutex fMut
Definition XrdBwmLogger.hh:84
int Start(XrdSysError *eobj)
XrdOucProg * theProg
Definition XrdBwmLogger.hh:79
void Event(Info &eInfo)
pthread_t tid
Definition XrdBwmLogger.hh:76
void retMsg(XrdBwmLoggerMsg *tp)
void sendEvents(void)
Definition XrdOucProg.hh:38
Definition XrdSysError.hh:90
Definition XrdSysPthread.hh:165
Definition XrdSysPthread.hh:494
Definition XrdBwmLogger.hh:45
const char * rmtNode
Definition XrdBwmLogger.hh:48
time_t CTime
Definition XrdBwmLogger.hh:51
long long Size
Definition XrdBwmLogger.hh:55
const char * lclNode
Definition XrdBwmLogger.hh:47
int ESec
Definition XrdBwmLogger.hh:56
int numqOut
Definition XrdBwmLogger.hh:53
int numqXeq
Definition XrdBwmLogger.hh:54
int numqIn
Definition XrdBwmLogger.hh:52
const char * Tident
Definition XrdBwmLogger.hh:45
time_t ATime
Definition XrdBwmLogger.hh:49
time_t BTime
Definition XrdBwmLogger.hh:50
const char * Lfn
Definition XrdBwmLogger.hh:46
char Flow
Definition XrdBwmLogger.hh:57