1 /*! 2 \class StMessage 3 \author G. Van Buren, BNL 4 5 This is the class of messages used by StMessageManager in STAR. 6 Messages have a type and message specified at instantiation, 7 and also include a time-date stamp and options for printing. 8 9 */ 10 11 #ifndef ClassStMessage 12 #define ClassStMessage 13 14 #ifdef __ROOT__ 15 #include "Rtypes.h" 16 #endif 17 #include <time.h> 18 19 enum StMessOpt { 20 kMessOptNone = 0U, 21 kMessOptDash = 1U, 22 kMessOptO = (1U << 1), 23 kMessOptE = (1U << 2), 24 kMessOptT = (1U << 3), 25 kMessOptS = (1U << 4), 26 kMessOptP = (1U << 5) 27 }; 28 29 class StMessage { 30 friend class StMessageManager; 31 32 private: 33 static int repeats; 34 static void IgnoreRepeats() { repeats=0; } 35 static void AllowRepeats() { repeats=1; } 36 37 protected: 38 char type[2]; 39 // char* location; //! 40 // unsigned long runNumber; 41 // pair<long, long> eventId; 42 unsigned int option; 43 time_t messTime; 44 char* message; //! 45 46 public: 47 StMessage(const char* mess="", const char* ty="I", const char* opt="O"); 48 StMessage(const StMessage&){option=0;messTime=0;message=0;} 49 virtual ~StMessage(); 50 void PrintInfo(); 51 int Print(int nChars=-1); 52 time_t& GetTime() {return messTime;} 53 const char* GetType() const {return type;} 54 char* GetMessage() const {return message;} 55 unsigned int GetOption() const {return option;} 56 char* GetOptions() const; 57 void SetOptions(const char* opt); 58 size_t GetMemoryUsage(); 59 60 static int InitBuffer(); 61 #ifdef __ROOT__ 62 ClassDef(StMessage,0) 63 #endif 64 }; 65 66 #endif 67 68 // $Id: StMessage.h,v 1.17 2016/06/14 06:26:34 genevb Exp $ 69 // $Log: StMessage.h,v $ 70 // Revision 1.17 2016/06/14 06:26:34 genevb 71 // better initializations (Coverity) 72 // 73 // Revision 1.16 2004/04/02 22:17:14 genevb 74 // Added protected Ignore/AllowRepeats() for friend StBFChain class 75 // 76 // Revision 1.15 2003/10/01 20:06:50 genevb 77 // Initialize and test ostrstream buffer sizes (support for gcc before 3.2) 78 // 79 // Revision 1.13 2003/09/25 21:18:14 genevb 80 // Changed option storage 81 // 82 // Revision 1.12 2003/09/22 01:30:41 perev 83 // some cleanup 84 // 85 // Revision 1.11 2001/05/16 15:50:56 genevb 86 // Switch TROOT.h to Rtypes.h 87 // 88 // Revision 1.10 2001/05/16 15:18:50 genevb 89 // Need include for TROOT 90 // 91 // Revision 1.9 2001/05/14 20:53:20 genevb 92 // Add features to examine memory use, switch from TDatime to time_t 93 // 94 // Revision 1.8 2000/06/10 21:19:02 genevb 95 // Remove use of virtual functions 96 // 97 // Revision 1.7 2000/01/05 19:53:46 genevb 98 // Fixed CC5 warnings, and several other small improvements under the hood 99 // 100 // Revision 1.6 1999/08/18 18:28:33 fine 101 // Various bugs have been fixed. share lib was not loaded under HP 102 // 103 // Revision 1.5 1999/07/08 22:58:18 genevb 104 // Created an abstract interface with StMessMgr.h hiding template implementation from others, a few other small fixes 105 // 106 // Revision 1.4 1999/06/30 17:24:50 genevb 107 // Better limit management, remove Bool_t 108 // 109 // Revision 1.3 1999/06/29 17:37:31 genevb 110 // Lots of fixes... 111 // 112 // Revision 1.2 1999/06/24 16:30:41 genevb 113 // Fixed some memory leaks 114 // 115 // Revision 1.1 1999/06/23 15:17:47 genevb 116 // Introduction of StMessageManager 117 // 118 // Revision 1.0 1999/01/27 10:28:29 genevb 119 // 120