xrootd
Loading...
Searching...
No Matches
XrdClMonitor.hh
Go to the documentation of this file.
1//------------------------------------------------------------------------------
2// Copyright (c) 2012 by the Board of Trustees of the Leland Stanford, Jr.,
3// University
4// Copyright (c) 2012 by European Organization for Nuclear Research (CERN)
5// Author: Andrew Hanushevsky <abh@stanford.edu>
6// Author: Lukasz Janyst <ljanyst@cern.ch>
7//------------------------------------------------------------------------------
8// XRootD is free software: you can redistribute it and/or modify
9// it under the terms of the GNU Lesser General Public License as published by
10// the Free Software Foundation, either version 3 of the License, or
11// (at your option) any later version.
12//
13// XRootD is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU Lesser General Public License
19// along with XRootD. If not, see <http://www.gnu.org/licenses/>.
20//------------------------------------------------------------------------------
21
22//------------------------------------------------------------------------------
39//------------------------------------------------------------------------------
40
41#ifndef __XRD_CL_MONITOR_HH__
42#define __XRD_CL_MONITOR_HH__
43
45
46namespace XrdCl
47{
48 class URL;
49
50 //----------------------------------------------------------------------------
52 //----------------------------------------------------------------------------
53 class Monitor
54 {
55 public:
56 //------------------------------------------------------------------------
58 //------------------------------------------------------------------------
60
61 //------------------------------------------------------------------------
63 //------------------------------------------------------------------------
64 virtual ~Monitor() {}
65
66 //------------------------------------------------------------------------
68 //------------------------------------------------------------------------
70 {
72 {
73 sTOD.tv_sec = 0; sTOD.tv_usec = 0;
74 eTOD.tv_sec = 0; eTOD.tv_usec = 0;
75 }
76 std::string server;
77 std::string auth;
78 timeval sTOD;
79 timeval eTOD;
80 uint16_t streams;
81 };
82
83 //------------------------------------------------------------------------
85 //------------------------------------------------------------------------
87 {
89 {}
90 std::string server;
91 uint64_t rBytes;
92 uint64_t sBytes;
93 time_t cTime;
95 };
96
97 //------------------------------------------------------------------------
99 //------------------------------------------------------------------------
100 struct OpenInfo
101 {
102 OpenInfo(): file(0), fSize(0), oFlags(0) {}
103 const URL *file;
104 std::string dataServer;
105 uint64_t fSize;
106 uint16_t oFlags;
107 };
108
109 //------------------------------------------------------------------------
111 //------------------------------------------------------------------------
113 {
115 file(0), rBytes(0), vrBytes(0), wBytes(0), vwBytes(0), vSegs(0), rCount(0),
116 vCount(0), wCount(0), status(0)
117 {
118 oTOD.tv_sec = 0; oTOD.tv_usec = 0;
119 cTOD.tv_sec = 0; cTOD.tv_usec = 0;
120 }
121 const URL *file;
122 timeval oTOD;
123 timeval cTOD;
124 uint64_t rBytes;
125 uint64_t vrBytes;
126 uint64_t wBytes;
127 uint64_t vwBytes;
128 uint64_t vSegs;
129 uint32_t rCount;
130 uint32_t vCount;
131 uint32_t wCount;
133 };
134
135 //------------------------------------------------------------------------
137 //------------------------------------------------------------------------
139 {
141 {
147 ErrUnc
148 };
149
151 const URL *file;
154 };
155
156 //------------------------------------------------------------------------
158 //------------------------------------------------------------------------
160 {
162 const URL *origin;
163 const URL *target;
164 };
165
166 //------------------------------------------------------------------------
170 //------------------------------------------------------------------------
172 {
174 };
175
176 //------------------------------------------------------------------------
178 //------------------------------------------------------------------------
180 {
182 {
183 bTOD.tv_sec = 0; bTOD.tv_usec = 0;
184 eTOD.tv_sec = 0; eTOD.tv_usec = 0;
185 }
188 timeval bTOD;
189 timeval eTOD;
191 };
192
193 //------------------------------------------------------------------------
195 //------------------------------------------------------------------------
197 {
198 CheckSumInfo(): oTime(0), tTime(0), isOK(false) {}
200 std::string cksum;
201 uint64_t oTime;
202 uint64_t tTime;
203 bool isOK;
204 };
205
206 //------------------------------------------------------------------------
209 //------------------------------------------------------------------------
211 {
220
221 };
222
223 //------------------------------------------------------------------------
230 //------------------------------------------------------------------------
231 virtual void Event( EventCode evCode, void *evData ) = 0;
232 };
233}
234
235#endif // __XRD_CL_MONITOR_HH
An abstract class to describe the client-side monitoring plugin interface.
Definition: XrdClMonitor.hh:54
virtual ~Monitor()
Destructor.
Definition: XrdClMonitor.hh:64
Monitor()
Constructor.
Definition: XrdClMonitor.hh:59
EventCode
Definition: XrdClMonitor.hh:211
@ EvCopyBeg
CopyBInfo: Copy operation started.
Definition: XrdClMonitor.hh:212
@ EvDisconnect
DisconnectInfo: Logout from a server.
Definition: XrdClMonitor.hh:219
@ EvClose
CloseInfo: File closed.
Definition: XrdClMonitor.hh:216
@ EvCopyEnd
CopyEInfo: Copy operation ended.
Definition: XrdClMonitor.hh:213
@ EvCheckSum
CheckSumInfo: File checksummed.
Definition: XrdClMonitor.hh:214
@ EvErrIO
ErrorInfo: An I/O error occurred.
Definition: XrdClMonitor.hh:217
@ EvOpen
OpenInfo: File opened.
Definition: XrdClMonitor.hh:215
@ EvConnect
ConnectInfo: Login into a server.
Definition: XrdClMonitor.hh:218
virtual void Event(EventCode evCode, void *evData)=0
URL representation.
Definition: XrdClURL.hh:31
Request status.
Definition: XrdClXRootDResponses.hh:219
Definition: XrdClAction.hh:34
Describe a checksum event.
Definition: XrdClMonitor.hh:197
TransferInfo transfer
The transfer in question.
Definition: XrdClMonitor.hh:199
uint64_t tTime
Microseconds to obtain cksum from target.
Definition: XrdClMonitor.hh:202
bool isOK
True if checksum matched, false otherwise.
Definition: XrdClMonitor.hh:203
std::string cksum
Checksum as "type:value".
Definition: XrdClMonitor.hh:200
CheckSumInfo()
Definition: XrdClMonitor.hh:198
uint64_t oTime
Microseconds to obtain cksum from origin.
Definition: XrdClMonitor.hh:201
Describe a file close event.
Definition: XrdClMonitor.hh:113
uint64_t vwBytes
Total number of bytes written vie writev.
Definition: XrdClMonitor.hh:127
const XRootDStatus * status
Close status.
Definition: XrdClMonitor.hh:132
uint32_t wCount
Total count of writes.
Definition: XrdClMonitor.hh:131
CloseInfo()
Definition: XrdClMonitor.hh:114
uint64_t vSegs
Total count of readv segments.
Definition: XrdClMonitor.hh:128
uint64_t vrBytes
Total number of bytes read via readv.
Definition: XrdClMonitor.hh:125
timeval cTOD
gettimeofday() when file was closed
Definition: XrdClMonitor.hh:123
uint32_t vCount
Total count of readv.
Definition: XrdClMonitor.hh:130
const URL * file
The file in question.
Definition: XrdClMonitor.hh:121
uint64_t rBytes
Total number of bytes read via read.
Definition: XrdClMonitor.hh:124
timeval oTOD
gettimeofday() when file was opened
Definition: XrdClMonitor.hh:122
uint64_t wBytes
Total number of bytes written.
Definition: XrdClMonitor.hh:126
uint32_t rCount
Total count of reads.
Definition: XrdClMonitor.hh:129
Describe a server login event.
Definition: XrdClMonitor.hh:70
std::string server
"user@host:port"
Definition: XrdClMonitor.hh:76
uint16_t streams
Number of streams.
Definition: XrdClMonitor.hh:80
ConnectInfo()
Definition: XrdClMonitor.hh:71
timeval sTOD
gettimeofday() when login started
Definition: XrdClMonitor.hh:78
timeval eTOD
gettimeofday() when login ended
Definition: XrdClMonitor.hh:79
std::string auth
authentication protocol used or empty if none
Definition: XrdClMonitor.hh:77
Definition: XrdClMonitor.hh:172
TransferInfo transfer
The transfer in question.
Definition: XrdClMonitor.hh:173
Describe an end of copy event.
Definition: XrdClMonitor.hh:180
CopyEInfo()
Definition: XrdClMonitor.hh:181
TransferInfo transfer
The transfer in question.
Definition: XrdClMonitor.hh:186
int sources
Number of sources used for the copy.
Definition: XrdClMonitor.hh:187
timeval bTOD
Copy start time.
Definition: XrdClMonitor.hh:188
const XRootDStatus * status
Status of the copy.
Definition: XrdClMonitor.hh:190
timeval eTOD
Copy end time.
Definition: XrdClMonitor.hh:189
Describe a server logout event.
Definition: XrdClMonitor.hh:87
uint64_t rBytes
Number of bytes received.
Definition: XrdClMonitor.hh:91
Status status
Disconnection status.
Definition: XrdClMonitor.hh:94
std::string server
"user@host:port"
Definition: XrdClMonitor.hh:90
time_t cTime
Seconds connected to the server.
Definition: XrdClMonitor.hh:93
DisconnectInfo()
Definition: XrdClMonitor.hh:88
uint64_t sBytes
Number of bytes sent.
Definition: XrdClMonitor.hh:92
Describe an encountered file-based error.
Definition: XrdClMonitor.hh:139
Operation
Definition: XrdClMonitor.hh:141
@ ErrWrite
Write.
Definition: XrdClMonitor.hh:145
@ ErrReadV
Readv.
Definition: XrdClMonitor.hh:144
@ ErrUnc
Unclassified operation.
Definition: XrdClMonitor.hh:147
@ ErrOpen
Open (ditto)
Definition: XrdClMonitor.hh:142
@ ErrRead
Read.
Definition: XrdClMonitor.hh:143
@ ErrWriteV
WriteV.
Definition: XrdClMonitor.hh:146
const XRootDStatus * status
Status code.
Definition: XrdClMonitor.hh:152
const URL * file
The file in question.
Definition: XrdClMonitor.hh:151
Operation opCode
The associated operation.
Definition: XrdClMonitor.hh:153
ErrorInfo()
Definition: XrdClMonitor.hh:150
Describe a file open event to the monitor.
Definition: XrdClMonitor.hh:101
uint64_t fSize
File size in bytes.
Definition: XrdClMonitor.hh:105
const URL * file
File in question.
Definition: XrdClMonitor.hh:103
std::string dataServer
Actual fata server.
Definition: XrdClMonitor.hh:104
uint16_t oFlags
OpenFlags.
Definition: XrdClMonitor.hh:106
OpenInfo()
Definition: XrdClMonitor.hh:102
Describe the transfer.
Definition: XrdClMonitor.hh:160
const URL * target
URL of the target.
Definition: XrdClMonitor.hh:163
TransferInfo()
Definition: XrdClMonitor.hh:161
const URL * origin
URL of the origin.
Definition: XrdClMonitor.hh:162
Procedure execution status.
Definition: XrdClStatus.hh:115