Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TStatus.h
Go to the documentation of this file.
1 // @(#)root/proofplayer:$Id$
2 // Author: Maarten Ballintijn 12/03/2004
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TStatus
13 #define ROOT_TStatus
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TStatus //
18 // //
19 // This class holds the status of a ongoing operation and collects //
20 // error messages. It provides a Merge() operation allowing it to //
21 // be used in PROOF to monitor status in the slaves. //
22 // No messages indicates success. //
23 // //
24 //////////////////////////////////////////////////////////////////////////
25 
26 #include "TNamed.h"
27 #include "THashList.h"
28 
29 #include <set>
30 #include <string>
31 
32 class TStatus : public TNamed {
33 
34 public:
35  enum EProcStatus {
36  kNotOk = BIT(15) // True if status of things are not OK
37  };
38 
39 private:
40  TList fMsgs; // list of error messages
41  TIter fIter; //!iterator in messages
42  THashList fInfoMsgs; // list of info messages
43 
44  Int_t fExitStatus; // Query exit status ((Int_t)TVirtualProofPlayer::EExitStatus or -1);
45  Long_t fVirtMemMax; // Max virtual memory used by the worker
46  Long_t fResMemMax; // Max resident memory used by the worker
47  Long_t fVirtMaxMst; // Max virtual memory used by the master
48  Long_t fResMaxMst; // Max resident memory used by the master
49 
50 public:
51  TStatus();
52  virtual ~TStatus() { }
53 
54  inline Bool_t IsOk() const { return TestBit(kNotOk) ? kFALSE : kTRUE; }
55  void Add(const char *mesg);
56  void AddInfo(const char *mesg);
57  virtual Int_t Merge(TCollection *list);
58  virtual void Print(Option_t *option="") const;
59  void Reset();
60  const char *NextMesg();
61 
62  Int_t GetExitStatus() const { return fExitStatus; }
63  Long_t GetResMemMax(Bool_t master = kFALSE) const { return ((master) ? fResMaxMst : fResMemMax); }
64  Long_t GetVirtMemMax(Bool_t master = kFALSE) const { return ((master) ? fVirtMaxMst : fVirtMemMax); }
65 
66  void SetExitStatus(Int_t est) { fExitStatus = est; }
67  void SetMemValues(Long_t vmem = -1, Long_t rmem = -1, Bool_t master = kFALSE);
68 
69  ClassDef(TStatus,5); // Status class
70 };
71 
72 #endif