xrootd
Main Page
Namespaces
Classes
Files
File List
File Members
src
XrdXrootd
XrdXrootdMonFile.hh
Go to the documentation of this file.
1
#ifndef __XRDXROOTDMONFILE__
2
#define __XRDXROOTDMONFILE__
3
/******************************************************************************/
4
/* */
5
/* X r d X r o o t d M o n F i l e . h h */
6
/* */
7
/* (c) 2012 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 "
Xrd/XrdJob.hh
"
34
#include "
XrdSys/XrdSysPthread.hh
"
35
#include "
XrdXrootd/XrdXrootdMonFMap.hh
"
36
#include "
XrdXrootd/XrdXrootdMonitor.hh
"
37
38
class
XrdScheduler
;
39
class
XrdSysError
;
40
class
XrdXrootdFileStats
;
41
class
XrdXrootdMonHeader
;
42
class
XrdXrootdMonTrace
;
43
44
class
XrdXrootdMonFile
:
XrdJob
45
{
46
public
:
47
48
static
void
Close
(
XrdXrootdFileStats
*fsP,
bool
isDisc=
false
);
49
50
static
void
Defaults
(
int
intv,
int
opts
,
int
iocnt);
51
52
static
void
Disc
(
unsigned
int
usrID);
53
54
void
DoIt
();
55
56
static
bool
Init
(
XrdScheduler
*sp,
XrdSysError
*errp,
int
bfsz=65472);
57
58
static
void
Open
(
XrdXrootdFileStats
*fsP,
59
const
char
*
Path
,
unsigned
int
uDID,
bool
isRW);
60
61
XrdXrootdMonFile
() :
XrdJob
(
"monitor fstat"
) {}
62
~XrdXrootdMonFile
() {}
63
64
private
:
65
66
static
void
DoXFR
();
67
static
void
DoXFR
(
XrdXrootdFileStats
*fsP);
68
static
void
Flush
();
69
static
char
*
GetSlot
(
int
slotSZ);
70
71
static
XrdSysError
*
eDest
;
72
static
XrdScheduler
*
Sched
;
73
static
XrdSysMutex
bfMutex
;
74
static
XrdSysMutex
fmMutex
;
75
static
XrdXrootdMonFMap
fmMap
[
XrdXrootdMonFMap::mapNum
];
76
static
short
fmUse
[
XrdXrootdMonFMap::mapNum
];
77
static
char
*
repBuff
;
78
static
XrdXrootdMonHeader
*
repHdr
;
79
static
XrdXrootdMonFileTOD
*
repTOD
;
80
static
char
*
repNext
;
81
static
char
*
repFirst
;
82
static
char
*
repLast
;
83
static
int
totRecs
;
84
static
int
xfrRecs
;
85
static
int
repSize
;
86
static
int
repTime
;
87
static
int
fmHWM
;
88
static
int
crecSize
;
89
static
int
xfrCnt
;
90
static
int
xfrRem
;
91
static
XrdXrootdMonFileXFR
xfrRec
;
92
static
short
crecNLen
;
93
static
short
trecNLen
;
94
static
char
fsLFN
;
95
static
char
fsLVL
;
96
static
char
fsOPS
;
97
static
char
fsSSQ
;
98
static
char
fsXFR
;
99
static
char
crecFlag
;
100
};
101
#endif
Generated by
1.8.3.1