Coda Distributed File System
data.h
Go to the documentation of this file.
1#ifndef _BLURB_
2#define _BLURB_
3/*
4
5 Coda: an Experimental Distributed File System
6 Release 6
7
8 Copyright (c) 1987-2003 Carnegie Mellon University
9 All Rights Reserved
10
11Permission to use, copy, modify and distribute this software and its
12documentation is hereby granted, provided that both the copyright
13notice and this permission notice appear in all copies of the
14software, derivative works or modified versions, and any portions
15thereof, and that both notices appear in supporting documentation, and
16that credit is given to Carnegie Mellon University in all documents
17and publicity pertaining to direct or indirect use of this code or its
18derivatives.
19
20CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS KNOWN TO HAVE BUGS,
21SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON ALLOWS
22FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON
23DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER
24RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF
25ANY DERIVATIVE WORK.
26
27Carnegie Mellon encourages users of this software to return any
28improvements or extensions that they make, and to grant Carnegie
29Mellon the rights to redistribute these changes without encumbrance.
30*/
31#endif /*_BLURB_*/
32
33#ifndef _DATA_H_
34#define _DATA_H_
35
36//
37// data.h
38//
39// This file contains defns for the assorted data that mond catches
40// -- mostly very simple. Just the container class + subclasses.
41// It also contains the defn of the buffer pool class.
42
43//
44// First, the superclass of all data classes that encapsulate
45// types that mond will put in it's bounded buffer...
46//
47// It consists only of a type field.
48
49/* buffer pools */
50/* TODO: think about being able to remove buffers from the pool */
51
52//
53// A Note about Copy Constructors:
54// Copy constructors for those data classes that have specialized constructors
55// and destructors are not implemented. I've created simple ones that simply
56// cause an abort. The reason is that the default copy constructor can cause
57// obscure bugs in the case that the data class contains an imbedded array.
58// The default copy constructor will bcopy the array from the original. If the
59// specialized destructor knows to delete the imbedded array, you'll end up
60// deleting the thing twice. So, we've chosen to create simple copy constructors
61// that abort in an obvious way to prevent new mond programmers from shooting
62// themselves in the foot. ;-) If you want a copy constructor, feel free to
63// implement one and remove the abort.
64//
65
66class callCountArray;
67class multiCallArray;
68class vmon_data;
69class session_data;
70class comm_data;
71class clientCall_data;
73class clientRVM_data;
74class vcb_data;
75class miniCache_data;
76class overflow_data;
77class srvrCall_data;
78class resEvent_data;
80class bufpool;
81
83 long size;
84 CallCountEntry *array;
85
86public:
87 callCountArray(void);
89 {
90 abort();
91 } /* Not implemented. See comment above. */
92 ~callCountArray(void);
93 void set(long, CallCountEntry *);
94 long getSize(void) { return size; }
95 CallCountEntry *getArray(void) { return array; }
96 Print(void);
97};
98
100 long size;
101 MultiCallEntry *array;
102
103public:
106 {
107 abort();
108 } /* Not implemented. See comment above. */
110 void set(long, MultiCallEntry *);
111 long getSize(void) { return size; }
112 MultiCallEntry *getArray(void) { return array; }
113};
114
116 vmon_data *next;
117
118public:
119 virtual ~vmon_data(void) = 0;
120 virtual void Report(void) = 0;
121 virtual dataClass Type(void) = 0;
122 virtual char *TypeName(void) = 0;
123 virtual void Release(void) = 0;
124 virtual void Print(void);
125 inline void SetNext(vmon_data *theNext) { next = theNext; }
126 inline void NotOnList(void) { next = NULL; }
127 inline vmon_data *Next() { return next; }
128};
129
130class session_data : private vmon_data {
131 VmonVenusId Venus;
132 VmonSessionId Session;
133 VolumeId Volume;
134 UserId User;
135 VmonAVSG AVSG;
136 unsigned long StartTime;
137 unsigned long EndTime;
138 unsigned long CETime;
139 VmonSessionEventArray Events;
140 SessionStatistics Stats;
141 CacheStatistics CacheStats;
142
143public:
144 dataClass Type(void) { return SESSION; }
145 char *TypeName(void) { return "Session"; }
146 void Report(void)
147 {
148 (void)ReportSession(&Venus, Session, Volume, User, &AVSG, StartTime,
149 EndTime, CETime, &Events, &Stats, &CacheStats);
150 }
151 void Release(void);
152 void init(VmonVenusId *, VmonSessionId, VolumeId, UserId, VmonAVSG *,
153 unsigned long, unsigned long, unsigned long, long,
154 VmonSessionEvent[], SessionStatistics *, CacheStatistics *);
155 VmonSessionEventArray *theEvents() { return &Events; }
156};
157
158class comm_data : private vmon_data {
159 VmonVenusId Venus;
160 unsigned long ServerIPAddress;
161 long SerialNumber;
162 unsigned long Time;
163 VmonCommEventType EvType;
164
165public:
166 inline dataClass Type(void) { return COMM; }
167 char *TypeName(void) { return "CommEvent"; }
168 void Release(void);
169 void Report(void)
170 {
171 (void)ReportCommEvent(&Venus, ServerIPAddress, SerialNumber, Time,
172 EvType);
173 }
174 void init(VmonVenusId *, unsigned long, long, unsigned long,
175 VmonCommEventType);
176};
177
178class clientCall_data : private vmon_data {
179 VmonVenusId Venus;
180 long Time;
182
183public:
184 inline dataClass Type(void) { return CLNTCALL; }
185 char *TypeName(void) { return "Client Call"; }
186 void Release(void);
187 void Report(void) { (void)ReportClntCall(&Venus, Time, &SrvCount); }
188 void init(VmonVenusId *, long, long, CallCountEntry *);
189 void Print(void);
190};
191
193 VmonVenusId Venus;
194 long Time;
195 class multiCallArray MSrvCount;
196
197public:
198 inline dataClass Type(void) { return CLNTMCALL; }
199 char *TypeName(void) { return "Client Call"; }
200 void Release(void);
201 void Report(void) { (void)ReportClntMCall(&Venus, Time, &MSrvCount); }
202 void init(VmonVenusId *, long, long, MultiCallEntry *);
203};
204
205class clientRVM_data : private vmon_data {
206 VmonVenusId Venus;
207 long Time;
208 RvmStatistics Stats;
209
210public:
211 inline dataClass Type(void) { return CLNTRVM; }
212 char *TypeName(void) { return "Client Call"; }
213 void Release(void);
214 void Report(void) { (void)ReportClntRVM(&Venus, Time, &Stats); }
215 void init(VmonVenusId *, long, RvmStatistics *);
216};
217
218class vcb_data : private vmon_data {
219 VmonVenusId Venus;
220 long VenusInit;
221 long Time;
222 VolumeId Volume;
223 VCBStatistics Stats;
224
225public:
226 inline dataClass Type(void) { return VCB; }
227 char *TypeName(void) { return "VCB Stats"; }
228 void Release(void);
229 void Report(void)
230 {
231 (void)ReportVCB(&Venus, VenusInit, Time, Volume, &Stats);
232 }
233 void init(VmonVenusId *, long, long, VolumeId, VCBStatistics *);
234};
235
236class advice_data : private vmon_data {
237 VmonVenusId Venus;
238 long Time;
239 UserId User;
240 AdviceStatistics Stats;
241 unsigned long Call_Size;
242 AdviceCalls *Call_Stats;
243 unsigned long Result_Size;
244 AdviceResults *Result_Stats;
245
246public:
247 advice_data();
249 {
250 abort();
251 } /* Not implemented. See comment above. */
252 ~advice_data();
253 inline dataClass Type(void) { return ADVICE; }
254 char *TypeName(void) { return "Client Advice Stats"; }
255 void Release(void);
256 void Report(void)
257 {
258 (void)ReportAdviceCall(&Venus, Time, User, &Stats, Call_Size,
259 Call_Stats, Result_Size, Result_Stats);
260 }
261 void init(VmonVenusId *, long, UserId, AdviceStatistics *, unsigned long,
262 AdviceCalls[], unsigned long, AdviceResults[]);
263};
264
265class miniCache_data : private vmon_data {
266 VmonVenusId Venus;
267 long Time;
268 unsigned long VN_Size;
269 VmonMiniCacheStat *VN_Stats;
270 unsigned long VFS_Size;
271 VmonMiniCacheStat *VFS_Stats;
272
273public:
276 {
277 abort();
278 } /* Not implemented. See comment above. */
280 inline dataClass Type(void) { return MINICACHE; }
281 char *TypeName(void) { return "Client MiniCache Stats"; }
282 void Release(void);
283 void Report(void)
284 {
285 (void)ReportMiniCacheCall(&Venus, Time, VN_Size, VN_Stats, VFS_Size,
286 VFS_Stats);
287 }
288 void init(VmonVenusId *, long, unsigned long, VmonMiniCacheStat[],
289 unsigned long, VmonMiniCacheStat[]);
290};
291
292class overflow_data : private vmon_data {
293 VmonVenusId Venus;
294 unsigned long VMStartTime;
295 unsigned long VMEndTime;
296 long VMCount;
297 unsigned long RVMStartTime;
298 unsigned long RVMEndTime;
299 long RVMCount;
300
301public:
302 inline dataClass Type(void) { return OVERFLOW; }
303 char *TypeName(void) { return "Client Overflow"; }
304 void Release(void);
305 void Report(void)
306 {
307 (void)ReportOverflow(&Venus, VMStartTime, VMEndTime, VMCount,
308 RVMStartTime, RVMEndTime, RVMCount);
309 }
310 void init(VmonVenusId *, unsigned long, unsigned long, long, unsigned long,
311 unsigned long, long);
312};
313
315{
322
323class srvrCall_data : private vmon_data {
324 SmonViceId Vice;
325 unsigned long Time;
326 class callCountArray CBCount;
327 class callCountArray ResCount;
328 class callCountArray SmonCount;
329 class callCountArray VolDCount;
330 class multiCallArray MultiCount;
331 SmonStatistics Stats;
332
333public:
334 dataClass Type(void) { return SRVCALL; }
335 char *TypeName(void) { return "Server Call"; }
336 void Release(void);
337 void Report(void)
338 {
339 (void)ReportSrvrCall(&Vice, Time, &CBCount, &ResCount, &SmonCount,
340 &VolDCount, &MultiCount, &Stats);
341 }
342 void init(SmonViceId *, unsigned long, long, CallCountEntry *, long,
343 CallCountEntry *, long, CallCountEntry *, long, CallCountEntry *,
344 long, MultiCallEntry *, SmonStatistics *);
345};
346
347class resEvent_data : private vmon_data {
348 SmonViceId Vice;
349 unsigned long Time;
350 VolumeId Volid;
351 long HighWaterMark;
352 long AllocNumber;
353 long DeallocNumber;
354 long ResOp_size;
355 ResOpEntry *ResOp;
356
357public:
358 dataClass Type(void) { return SRVRES; }
359 char *TypeName(void) { return "Res Event"; }
360 void Release(void);
361 void Report(void)
362 {
363 (void)ReportResEvent(&Vice, Time, Volid, HighWaterMark, AllocNumber,
364 DeallocNumber, ResOp_size, ResOp);
365 }
366 void init(SmonViceId *, RPC2_Unsigned, VolumeId, RPC2_Integer, RPC2_Integer,
367 RPC2_Integer, RPC2_Integer, ResOpEntry[]);
368 resEvent_data(void);
370 {
371 abort();
372 } /* Not implemented. See comment above. */
373 //no destructor is needed
374};
375
377 SmonViceId Vice;
378 unsigned long Time;
379 unsigned long StartTime;
380 unsigned long EndTime;
381 long Count;
382
383public:
384 dataClass Type(void) { return SRVOVRFLW; }
385 char *TypeName(void) { return "Server Overflow"; }
386 void Release(void);
387 void Report(void)
388 {
389 (void)ReportSrvOverflow(&Vice, Time, StartTime, EndTime, Count);
390 }
391 void init(SmonViceId *, RPC2_Unsigned, RPC2_Unsigned, RPC2_Unsigned,
393};
394
395class iotInfo_data : private vmon_data {
396 VmonVenusId Venus;
397 IOT_INFO Info;
398 RPC2_Integer AppNameLen;
399 RPC2_String AppName;
400
401public:
402 iotInfo_data();
404 {
405 abort();
406 } /* Not implemented. See comment above. */
408 inline dataClass Type(void) { return IOTINFO; }
409 char *TypeName(void) { return "Client IOT Info"; }
410 void Release(void);
411 void Report(void)
412 {
413 (void)ReportIotInfoCall(&Venus, &Info, AppNameLen, AppName);
414 }
415 void init(VmonVenusId *, IOT_INFO *, RPC2_Integer, RPC2_String);
416};
417
418class iotStat_data : private vmon_data {
419 VmonVenusId Venus;
420 RPC2_Integer Time;
421 IOT_STAT Stats;
422
423public:
424 inline dataClass Type(void) { return IOTSTAT; }
425 char *TypeName(void) { return "Client IOT Stat"; }
426 void Release(void);
427 void Report(void) { (void)ReportIotStatsCall(&Venus, Time, &Stats); }
428 void init(VmonVenusId *, RPC2_Integer, IOT_STAT *);
429};
430
431class subtree_data : private vmon_data {
432 VmonVenusId Venus;
433 RPC2_Integer Time;
434 LocalSubtreeStats Stats;
435
436public:
437 inline dataClass Type(void) { return SUBTREE; }
438 char *TypeName(void) { return "Client Localized Subtree Stats"; }
439 void Release(void);
440 void Report(void) { (void)ReportSubtreeCall(&Venus, Time, &Stats); }
441 void init(VmonVenusId *, RPC2_Integer, LocalSubtreeStats *);
442};
443
444class repair_data : private vmon_data {
445 VmonVenusId Venus;
446 RPC2_Integer Time;
447 RepairSessionStats Stats;
448
449public:
450 inline dataClass Type(void) { return REPAIR; }
451 char *TypeName(void) { return "Client Local/Global Repair Session Stats"; }
452 void Release(void);
453 void Report(void) { (void)ReportRepairCall(&Venus, Time, &Stats); }
454 void init(VmonVenusId *, RPC2_Integer, RepairSessionStats *);
455};
456
457class rwsStat_data : private vmon_data {
458 VmonVenusId Venus;
459 RPC2_Integer Time;
460 ReadWriteSharingStats Stats;
461
462public:
463 inline dataClass Type(void) { return RWSSTAT; }
464 char *TypeName(void) { return "Client RWS Stat"; }
465 void Release(void);
466 void Report(void) { (void)ReportRwsStatsCall(&Venus, Time, &Stats); }
467 void init(VmonVenusId *, RPC2_Integer, ReadWriteSharingStats *);
468};
469
470class bufpool {
471 MUTEX lock;
472 vmon_data *Pool;
473 dataClass type;
474
475public:
477 vmon_data *getSlot(void);
478 void putSlot(vmon_data *);
479};
480
481struct Histogram {
482 long size;
483 HistoElem *buckets;
484
485 Histogram();
487 {
488 abort();
489 } /* Not implemented. See comment above. */
490 ~Histogram();
491 void set(long _size, HistoElem _buckets[]);
492};
493
495 SmonViceId Vice;
496 unsigned long Time;
497 unsigned long VolID;
498 FileResStats FileRes;
499 DirResStats DirRes;
500 Histogram LogSizeHisto;
501 Histogram LogMaxHisto;
502 ResConflictStats Conflicts;
503 Histogram SuccHierHist;
504 Histogram FailHierHist;
505 ResLogStats ResLog;
506 Histogram VarLogHisto;
507 Histogram LogSize;
508
509public:
510 dataClass Type(void) { return SRVRVMRES; }
511 char *TypeName(void) { return "Rvm Resolution Stats"; }
512 void Release(void);
513 void Report(void)
514 {
515 (void)ReportRvmResEvent(Vice, Time, VolID, FileRes, DirRes,
516 &LogSizeHisto, &LogMaxHisto, Conflicts,
517 &SuccHierHist, &FailHierHist, ResLog,
518 &VarLogHisto, &LogSize);
519 }
520 void init(SmonViceId, unsigned long, unsigned long, FileResStats,
521 DirResStats, long, HistoElem[], long, HistoElem[],
522 ResConflictStats, long, HistoElem[], long, HistoElem[],
523 ResLogStats, long, HistoElem[], long, HistoElem[]);
524 /* use the default ctor */
525 //rvmResEvent_data(void);
526 //no destructor is needed
527};
528
529// extern'ed bufpools
530
531extern bufpool session_pool;
532extern bufpool comm_pool;
536extern bufpool vcb_pool;
537extern bufpool advice_pool;
544extern bufpool iotInfo_pool;
545extern bufpool iotStat_pool;
546extern bufpool subtree_pool;
547extern bufpool repair_pool;
548extern bufpool rwsStat_pool;
549
550#endif _DATA_H_
Definition: data.h:236
advice_data()
Definition: data.c:317
dataClass Type(void)
Definition: data.h:253
~advice_data()
Definition: data.c:325
void init(VmonVenusId *, long, UserId, AdviceStatistics *, unsigned long, AdviceCalls[], unsigned long, AdviceResults[])
Definition: data.c:331
void Release(void)
Definition: data.c:368
void Report(void)
Definition: data.h:256
advice_data(advice_data &)
Definition: data.h:248
char * TypeName(void)
Definition: data.h:254
Definition: data.h:470
void putSlot(vmon_data *)
Definition: data.c:802
vmon_data * getSlot(void)
Definition: data.c:727
bufpool(dataClass)
Definition: data.c:720
Definition: data.h:82
callCountArray(void)
Definition: data.c:119
long getSize(void)
Definition: data.h:94
Print(void)
Definition: data.c:108
CallCountEntry * getArray(void)
Definition: data.h:95
void set(long, CallCountEntry *)
Definition: data.c:83
callCountArray(callCountArray &)
Definition: data.h:88
~callCountArray(void)
Definition: data.c:125
Definition: data.h:178
void Report(void)
Definition: data.h:187
dataClass Type(void)
Definition: data.h:184
char * TypeName(void)
Definition: data.h:185
void Print(void)
Definition: data.c:263
void init(VmonVenusId *, long, long, CallCountEntry *)
Definition: data.c:249
void Release(void)
Definition: data.c:258
Definition: data.h:192
void init(VmonVenusId *, long, long, MultiCallEntry *)
Definition: data.c:271
void Release(void)
Definition: data.c:280
dataClass Type(void)
Definition: data.h:198
void Report(void)
Definition: data.h:201
char * TypeName(void)
Definition: data.h:199
Definition: data.h:205
char * TypeName(void)
Definition: data.h:212
dataClass Type(void)
Definition: data.h:211
void Report(void)
Definition: data.h:214
void Release(void)
Definition: data.c:296
void init(VmonVenusId *, long, RvmStatistics *)
Definition: data.c:285
Definition: data.h:158
void Release(void)
Definition: data.c:244
void init(VmonVenusId *, unsigned long, long, unsigned long, VmonCommEventType)
Definition: data.c:233
dataClass Type(void)
Definition: data.h:166
void Report(void)
Definition: data.h:169
char * TypeName(void)
Definition: data.h:167
Definition: data.h:395
iotInfo_data(iotInfo_data &)
Definition: data.h:403
char * TypeName(void)
Definition: data.h:409
dataClass Type(void)
Definition: data.h:408
void Report(void)
Definition: data.h:411
void Release(void)
Definition: data.c:608
~iotInfo_data()
Definition: data.c:579
iotInfo_data()
Definition: data.c:573
void init(VmonVenusId *, IOT_INFO *, RPC2_Integer, RPC2_String)
Definition: data.c:584
Definition: data.h:418
void Release(void)
Definition: data.c:636
void Report(void)
Definition: data.h:427
void init(VmonVenusId *, RPC2_Integer, IOT_STAT *)
Definition: data.c:613
dataClass Type(void)
Definition: data.h:424
char * TypeName(void)
Definition: data.h:425
Definition: data.h:265
miniCache_data(miniCache_data &)
Definition: data.h:275
void init(VmonVenusId *, long, unsigned long, VmonMiniCacheStat[], unsigned long, VmonMiniCacheStat[])
Definition: data.c:385
~miniCache_data()
Definition: data.c:379
void Release(void)
Definition: data.c:412
void Report(void)
Definition: data.h:283
dataClass Type(void)
Definition: data.h:280
char * TypeName(void)
Definition: data.h:281
miniCache_data()
Definition: data.c:373
Definition: data.h:99
long getSize(void)
Definition: data.h:111
void set(long, MultiCallEntry *)
Definition: data.c:149
multiCallArray()
Definition: data.c:134
~multiCallArray()
Definition: data.c:140
multiCallArray(multiCallArray &)
Definition: data.h:105
MultiCallEntry * getArray(void)
Definition: data.h:112
Definition: data.h:292
dataClass Type(void)
Definition: data.h:302
char * TypeName(void)
Definition: data.h:303
void Release(void)
Definition: data.c:432
void init(VmonVenusId *, unsigned long, unsigned long, long, unsigned long, unsigned long, long)
Definition: data.c:417
void Report(void)
Definition: data.h:305
Definition: data.h:444
char * TypeName(void)
Definition: data.h:451
void init(VmonVenusId *, RPC2_Integer, RepairSessionStats *)
Definition: data.c:662
void Report(void)
Definition: data.h:453
void Release(void)
Definition: data.c:697
dataClass Type(void)
Definition: data.h:450
Definition: data.h:347
void Release(void)
Definition: data.c:501
dataClass Type(void)
Definition: data.h:358
char * TypeName(void)
Definition: data.h:359
void init(SmonViceId *, RPC2_Unsigned, VolumeId, RPC2_Integer, RPC2_Integer, RPC2_Integer, RPC2_Integer, ResOpEntry[])
Definition: data.c:475
void Report(void)
Definition: data.h:361
resEvent_data(resEvent_data &)
Definition: data.h:369
resEvent_data(void)
Definition: data.c:464
Definition: data.h:494
void Release(void)
Definition: data.c:551
void Report(void)
Definition: data.h:513
dataClass Type(void)
Definition: data.h:510
void init(SmonViceId, unsigned long, unsigned long, FileResStats, DirResStats, long, HistoElem[], long, HistoElem[], ResConflictStats, long, HistoElem[], long, HistoElem[], ResLogStats, long, HistoElem[], long, HistoElem[])
Definition: data.c:528
char * TypeName(void)
Definition: data.h:511
Definition: data.h:457
dataClass Type(void)
Definition: data.h:463
char * TypeName(void)
Definition: data.h:464
void Release(void)
Definition: data.c:715
void init(VmonVenusId *, RPC2_Integer, ReadWriteSharingStats *)
Definition: data.c:702
void Report(void)
Definition: data.h:466
Definition: data.h:130
void init(VmonVenusId *, VmonSessionId, VolumeId, UserId, VmonAVSG *, unsigned long, unsigned long, unsigned long, long, VmonSessionEvent[], SessionStatistics *, CacheStatistics *)
Definition: data.c:189
dataClass Type(void)
Definition: data.h:144
char * TypeName(void)
Definition: data.h:145
void Report(void)
Definition: data.h:146
VmonSessionEventArray * theEvents()
Definition: data.h:155
void Release(void)
Definition: data.c:228
Definition: data.h:376
void Report(void)
Definition: data.h:387
void init(SmonViceId *, RPC2_Unsigned, RPC2_Unsigned, RPC2_Unsigned, RPC2_Integer)
Definition: data.c:556
void Release(void)
Definition: data.c:568
dataClass Type(void)
Definition: data.h:384
char * TypeName(void)
Definition: data.h:385
Definition: data.h:323
char * TypeName(void)
Definition: data.h:335
void Release(void)
Definition: data.c:459
void init(SmonViceId *, unsigned long, long, CallCountEntry *, long, CallCountEntry *, long, CallCountEntry *, long, CallCountEntry *, long, MultiCallEntry *, SmonStatistics *)
Definition: data.c:437
dataClass Type(void)
Definition: data.h:334
void Report(void)
Definition: data.h:337
Definition: data.h:431
dataClass Type(void)
Definition: data.h:437
void Release(void)
Definition: data.c:657
void init(VmonVenusId *, RPC2_Integer, LocalSubtreeStats *)
Definition: data.c:641
char * TypeName(void)
Definition: data.h:438
void Report(void)
Definition: data.h:440
Definition: data.h:218
void init(VmonVenusId *, long, long, VolumeId, VCBStatistics *)
Definition: data.c:301
void Report(void)
Definition: data.h:229
void Release(void)
Definition: data.c:312
dataClass Type(void)
Definition: data.h:226
char * TypeName(void)
Definition: data.h:227
Definition: data.h:115
virtual void Release(void)=0
void NotOnList(void)
Definition: data.h:126
vmon_data * Next()
Definition: data.h:127
virtual ~vmon_data(void)=0
Definition: data.c:175
virtual char * TypeName(void)=0
void SetNext(vmon_data *theNext)
Definition: data.h:125
virtual void Report(void)=0
virtual void Print(void)
Definition: data.c:181
virtual dataClass Type(void)=0
bufpool iotInfo_pool
countArrayType
Definition: data.h:315
@ SMON
Definition: data.h:318
@ VOLD
Definition: data.h:319
@ MULTICAST
Definition: data.h:320
@ CALLBACK
Definition: data.h:316
@ RESOLVE
Definition: data.h:317
bufpool overflow_pool
bufpool rvmResEvent_pool
bufpool clientRVM_pool
bufpool srvrCall_pool
bufpool iotStat_pool
bufpool srvOverflow_pool
bufpool repair_pool
bufpool clientCall_pool
bufpool subtree_pool
bufpool clientMCall_pool
bufpool comm_pool
bufpool miniCache_pool
bufpool vcb_pool
bufpool session_pool
bufpool resEvent_pool
bufpool rwsStat_pool
bufpool advice_pool
int ReportIotStatsCall()
int ReportRvmResEvent()
int ReportOverflow()
int ReportRwsStatsCall()
int ReportResEvent()
int ReportSession()
int ReportIotInfoCall()
int ReportCommEvent()
int ReportSubtreeCall()
int ReportRepairCall()
dataClass
Definition: mondgen.h:53
@ OVERFLOW
Definition: mondgen.h:62
@ SUBTREE
Definition: mondgen.h:69
@ SRVRES
Definition: mondgen.h:64
@ CLNTRVM
Definition: mondgen.h:58
@ RWSSTAT
Definition: mondgen.h:71
@ CLNTMCALL
Definition: mondgen.h:57
@ REPAIR
Definition: mondgen.h:70
@ COMM
Definition: mondgen.h:55
@ MINICACHE
Definition: mondgen.h:61
@ IOTSTAT
Definition: mondgen.h:68
@ SRVOVRFLW
Definition: mondgen.h:65
@ VCB
Definition: mondgen.h:59
@ ADVICE
Definition: mondgen.h:60
@ CLNTCALL
Definition: mondgen.h:56
@ SRVRVMRES
Definition: mondgen.h:66
@ SRVCALL
Definition: mondgen.h:63
@ SESSION
Definition: mondgen.h:54
@ IOTINFO
Definition: mondgen.h:67
long ReportClntCall(VmonVenusId *, long, class callCountArray *)
Definition: wind.c:131
long ReportVCB(VmonVenusId *, long, long, VolumeId, VCBStatistics *)
Definition: wind.c:172
long ReportClntMCall(VmonVenusId *, long, class multiCallArray *)
Definition: wind.c:145
long ReportSrvOverflow(SmonViceId *, unsigned long, unsigned long, unsigned long, long)
Definition: wind.c:314
long ReportClntRVM(VmonVenusId *, long, RvmStatistics *)
Definition: wind.c:159
long ReportAdviceCall(VmonVenusId *, long, UserId, AdviceStatistics *, unsigned long, AdviceCalls *, unsigned long, AdviceResults *)
Definition: wind.c:188
long ReportMiniCacheCall(VmonVenusId *, long, unsigned long, VmonMiniCacheStat *, unsigned long, VmonMiniCacheStat *)
Definition: wind.c:207
long ReportSrvrCall(SmonViceId *, unsigned long, class callCountArray *, class callCountArray *, class callCountArray *, class callCountArray *, class multiCallArray *, SmonStatistics *)
int32_t RPC2_Integer
Definition: rpc2.h:297
uint32_t RPC2_Unsigned
Definition: rpc2.h:300
RPC2_ByteSeq RPC2_String
Definition: rpc2.h:312
int SrvCount
Definition: smon2.c:71
unsigned StartTime
Definition: srv.cc:127
Definition: venus.private.h:270
Definition: rpc2.h:662
Definition: data.h:481
Histogram(Histogram &)
Definition: data.h:486
HistoElem * buckets
Definition: data.h:483
long size
Definition: data.h:482
void set(long _size, HistoElem _buckets[])
Definition: data.c:517
~Histogram()
Definition: data.c:512
Histogram()
Definition: data.c:506
Definition: lock.h:68
Definition: rpc2.h:671
Definition: venusfid.h:31
Definition: volume.h:234
#define NULL
Definition: voltypes.h:44