xrootd
Loading...
Searching...
No Matches
XrdStats.hh
Go to the documentation of this file.
1#ifndef __XRD_STATS_H__
2#define __XRD_STATS_H__
3/******************************************************************************/
4/* */
5/* X r d S t a t s . h h */
6/* */
7/* (c) 2004 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* Produced by Andrew Hanushevsky for Stanford University under contract */
9/* DE-AC02-76-SFO0515 with the Department of Energy */
10/* */
11/* This file is part of the XRootD software suite. */
12/* */
13/* XRootD is free software: you can redistribute it and/or modify it under */
14/* the terms of the GNU Lesser General Public License as published by the */
15/* Free Software Foundation, either version 3 of the License, or (at your */
16/* option) any later version. */
17/* */
18/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
19/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
20/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
21/* License for more details. */
22/* */
23/* You should have received a copy of the GNU Lesser General Public License */
24/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
25/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
26/* */
27/* The copyright holder's institutional names and contributor's names may not */
28/* be used to endorse or promote products derived from this software without */
29/* specific prior written permission of the institution or contributor. */
30/******************************************************************************/
31
32#include <cstdlib>
33
35
36#define XRD_STATS_ALL 0x000000FF
37#define XRD_STATS_INFO 0x00000001
38#define XRD_STATS_BUFF 0x00000002
39#define XRD_STATS_LINK 0x00000004
40#define XRD_STATS_POLL 0x00000008
41#define XRD_STATS_PROC 0x00000010
42#define XRD_STATS_PROT 0x00000020
43#define XRD_STATS_SCHD 0x00000040
44#define XRD_STATS_SGEN 0x00000080
45#define XRD_STATS_SYNC 0x40000000
46#define XRD_STATS_SYNCA 0x20000000
47
48class XrdScheduler;
49class XrdBuffManager;
50
52{
53public:
54
55void Report(char **Dest=0, int iVal=600, int Opts=0);
56
58 {public: virtual void Info(const char *data, int dlen) = 0;
60 virtual ~CallBack() {}
61 };
62
63virtual
64void Stats(CallBack *InfoBack, int opts);
65
67 const char *hn, int port, const char *in, const char *pn,
68 const char *sn);
69
70virtual ~XrdStats() {if (buff) free(buff);}
71
72private:
73
74const char *GenStats(int &rsz, int opts);
75int InfoStats(char *buff, int blen, int dosync=0);
76int ProcStats(char *buff, int blen, int dosync=0);
77
78static long tBoot; // Time at boot time
79
84
85char *buff; // Used by all callers
86int blen;
87int Hlen;
88char *Head;
89const char *myHost;
90const char *myName;
92};
93#endif
Definition XrdBuffer.hh:72
Definition XrdScheduler.hh:46
Definition XrdStats.hh:58
virtual ~CallBack()
Definition XrdStats.hh:60
CallBack()
Definition XrdStats.hh:59
virtual void Info(const char *data, int dlen)=0
Definition XrdStats.hh:52
int myPort
Definition XrdStats.hh:91
int blen
Definition XrdStats.hh:86
const char * GenStats(int &rsz, int opts)
XrdStats(XrdSysError *eP, XrdScheduler *sP, XrdBuffManager *bP, const char *hn, int port, const char *in, const char *pn, const char *sn)
XrdBuffManager * BuffPool
Definition XrdStats.hh:82
char * Head
Definition XrdStats.hh:88
char * buff
Definition XrdStats.hh:85
XrdSysMutex statsMutex
Definition XrdStats.hh:83
const char * myName
Definition XrdStats.hh:90
virtual ~XrdStats()
Definition XrdStats.hh:70
int ProcStats(char *buff, int blen, int dosync=0)
void Report(char **Dest=0, int iVal=600, int Opts=0)
static long tBoot
Definition XrdStats.hh:78
int Hlen
Definition XrdStats.hh:87
XrdSysError * XrdLog
Definition XrdStats.hh:81
XrdScheduler * XrdSched
Definition XrdStats.hh:80
const char * myHost
Definition XrdStats.hh:89
int InfoStats(char *buff, int blen, int dosync=0)
virtual void Stats(CallBack *InfoBack, int opts)
Definition XrdSysError.hh:90
Definition XrdSysPthread.hh:165