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;
77char *theTarget;
79XrdOucProg *theProg;
80XrdSysMutex qMut;
82XrdBwmLoggerMsg *msgFirst;
83XrdBwmLoggerMsg *msgLast;
84XrdSysMutex fMut;
85XrdBwmLoggerMsg *msgFree;
86int msgFD;
87int endIT;
88int msgsInQ;
89static const int maxmInQ = 256;
90char theEOL;
91};
92#endif
static XrdSysError eDest(0,"crypto_")
const char * rmtNode
const char * lclNode
const char * Prog()
XrdBwmLogger(const char *Target)
int Start(XrdSysError *eobj)
const char * Tident
void Event(Info &eInfo)
void sendEvents(void)