Changeset 752
- Timestamp:
- 04/18/01 14:36:05 (24 years ago)
- Location:
- trunk/MagicSoft/Mars/mbase
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mbase/BaseLinkDef.h
r705 r752 36 36 #pragma link C++ class MTime; 37 37 38 #pragma link C++ class MHtml; 39 38 40 39 41 #endif -
trunk/MagicSoft/Mars/mbase/MEvtLoop.cc
r749 r752 59 59 ClassImp(MEvtLoop) 60 60 61 // -------------------------------------------------------------------------- 62 // 63 // default constructor - emty 64 // 61 65 MEvtLoop::MEvtLoop() : fParList(NULL) 62 66 { 63 67 } 64 68 69 // -------------------------------------------------------------------------- 70 // 71 // default destructor - emty 72 // 65 73 MEvtLoop::~MEvtLoop() 66 74 { 67 75 } 68 76 77 // -------------------------------------------------------------------------- 78 // 79 // The proprocessing part of the eventloop. Be careful, this is 80 // for developers use only! 81 // 69 82 Bool_t MEvtLoop::PreProcess(const char *tlist) 70 83 { 71 //72 // The proprocessing part of the eventloop. Be careful, this is73 // for developers use only!74 //75 76 84 // 77 85 // check if the needed parameter list is set. … … 116 124 } 117 125 126 // -------------------------------------------------------------------------- 127 // 128 // The processing part of the eventloop. Be careful, this is 129 // for developers use only! 130 // 118 131 void MEvtLoop::Process(Int_t maxcnt) const 119 132 { 120 //121 // The processing part of the eventloop. Be careful, this is122 // for developers use only!123 //124 125 133 // 126 134 // loop over all events and process all tasks for … … 171 179 } 172 180 181 // -------------------------------------------------------------------------- 182 // 183 // The postprocessing part of the eventloop. Be careful, this is 184 // for developers use only! 185 // 173 186 void MEvtLoop::PostProcess() const 174 187 { 175 188 // 176 // The postprocessing part of the eventloop. Be careful, this is177 // for developers use only!178 //179 180 //181 189 // execute the post process of all tasks 182 190 // … … 184 192 } 185 193 194 // -------------------------------------------------------------------------- 195 // 196 // See class description above. 197 // 186 198 void MEvtLoop::Eventloop(Int_t maxcnt, const char *tlist) 187 199 { 188 //189 // See class description above.190 //191 200 if (!PreProcess(tlist)) 192 201 return; -
trunk/MagicSoft/Mars/mbase/MInputStreamID.cc
r749 r752 38 38 ClassImp(MInputStreamID); 39 39 40 // -------------------------------------------------------------------------- 41 // 42 // (default) constructor 43 // 40 44 MInputStreamID::MInputStreamID(const char *name, const char *title) 41 45 { 42 //43 // (default) constructor44 //45 46 *fName = name ? name : ClassName(); 46 47 *fTitle = title; -
trunk/MagicSoft/Mars/mbase/MLog.cc
r749 r752 55 55 MLog gLog; 56 56 57 // -------------------------------------------------------------------------- 58 // 59 // this strange usage of an unbufferd buffer is a workaround 60 // to make it work on Alpha and Linux! 61 // 57 62 void MLog::Init() 58 63 { 59 //60 // this strange usage of an unbufferd buffer is a workaround61 // to make it work on Alpha and Linux!62 //63 64 setp(&fBuffer, &fBuffer+1); 64 65 *this << '\0'; 65 66 } 66 67 68 // -------------------------------------------------------------------------- 69 // 70 // default constructor which initializes the streamer and sets the device 71 // which is used for the output (i) 72 // 67 73 MLog::MLog(int i) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(i), fout(NULL), fOutAllocated(kFALSE), fgui(NULL) 68 74 { … … 70 76 } 71 77 78 // -------------------------------------------------------------------------- 79 // 80 // default constructor which initializes the streamer and sets the given 81 // ofstream as the default output device 82 // 72 83 MLog::MLog(ofstream &out) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(eFile), fout(&out), fOutAllocated(kFALSE), fgui(NULL) 73 84 { … … 75 86 } 76 87 88 // -------------------------------------------------------------------------- 89 // 90 // default constructor which initializes the streamer and sets the given 91 // TGListBox as the default output device 92 // 77 93 MLog::MLog(TGListBox &out) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(eGui), fout(NULL), fOutAllocated(kFALSE), fgui(&out) 78 94 { … … 80 96 } 81 97 98 // -------------------------------------------------------------------------- 99 // 100 // default constructor which initializes the streamer and opens a file with 101 // the given name. Dependend on the flag the file is set as output device 102 // or not. 103 // 82 104 MLog::MLog(const char *fname, int flag) : ostream(this), fPPtr(fBase), fEPtr(fBase+bsz), fOutputLevel(0), fDebugLevel((unsigned)-1), fDevice(eFile), fgui(NULL) 83 105 { … … 88 110 } 89 111 112 // -------------------------------------------------------------------------- 113 // 114 // This is the function which writes the stream physically to a device. 115 // If you want to add a new device this must be done here. 116 // 90 117 void MLog::WriteBuffer() 91 118 { … … 115 142 } 116 143 144 // -------------------------------------------------------------------------- 145 // 146 // This is called to flush the buffer of the streaming devices 147 // 117 148 int MLog::sync() 118 149 { … … 131 162 } 132 163 164 // -------------------------------------------------------------------------- 165 // 166 // This function comes from streambuf and should 167 // output the buffer to the device (flush, endl) 168 // or handle a buffer overflow (too many chars) 169 // If a real overflow happens i contains the next 170 // chars which doesn't fit into the buffer anymore. 171 // If the buffer is not really filled i is EOF(-1). 172 // 133 173 int MLog::overflow(int i) // i=EOF means not a real overflow 134 174 { 135 //136 // This function comes from streambuf and should137 // output the buffer to the device (flush, endl)138 // or handle a buffer overflow (too many chars)139 // If a real overflow happens i contains the next140 // chars which doesn't fit into the buffer anymore.141 // If the buffer is not really filled i is EOF(-1).142 //143 175 if (fOutputLevel >= fDebugLevel) 144 176 return 0; … … 152 184 } 153 185 186 // -------------------------------------------------------------------------- 187 // 188 // Create a new instance of an file output stream 189 // an set the corresponding flag 190 // 154 191 void MLog::AllocateFile(const char *fname) 155 192 { 156 //157 // Create a new instance of an file output stream158 // an set the corresponding flag159 //160 193 fout = new ofstream(fname); 161 194 fOutAllocated = kTRUE; 162 195 } 163 196 197 // -------------------------------------------------------------------------- 198 // 199 // if fout was allocated by this instance of MLooging 200 // delete it. 201 // 164 202 void MLog::DeallocateFile() 165 203 { 166 //167 // if fout was allocated by this instance of MLooging168 // delete it.169 //170 204 if (fOutAllocated) 171 205 delete fout; 172 206 } 173 207 208 // -------------------------------------------------------------------------- 209 // 210 // if necessary delete the old in stance of the file 211 // output stream and create a new one 212 // 174 213 void MLog::ReallocateFile(const char *fname) 175 214 { 176 //177 // if necessary delete the old in stance of the file178 // output stream and create a new one179 //180 215 DeallocateFile(); 181 216 AllocateFile(fname); 182 217 } 183 218 219 // -------------------------------------------------------------------------- 220 // 221 // This function checks if a device should get enabled or disabled. 222 // 184 223 void MLog::CheckFlag(Flags_t chk, int flag) 185 224 { -
trunk/MagicSoft/Mars/mbase/MParContainer.cc
r749 r752 45 45 ClassImp(MParContainer); 46 46 47 // -------------------------------------------------------------------------- 48 // 49 // MParContainer copy ctor 50 // 47 51 MParContainer::MParContainer(const MParContainer &named) 48 52 { 49 //50 // MParContainer copy ctor.51 //52 53 *fName = *(named.fName); 53 54 *fTitle = *(named.fTitle); 54 55 } 55 56 57 // -------------------------------------------------------------------------- 58 // 59 // MParContainer assignment operator. 60 // 56 61 MParContainer& MParContainer::operator=(const MParContainer& rhs) 57 62 { 58 //59 // MParContainer assignment operator.60 //61 63 if (this != &rhs) { 62 64 TObject::operator=(rhs); … … 67 69 } 68 70 71 // -------------------------------------------------------------------------- 72 // 73 // Compare two MParContainer objects. Returns 0 when equal, -1 when this is 74 // smaller and +1 when bigger (like strcmp). 75 // 69 76 Int_t MParContainer::Compare(TObject *obj) 70 77 { 71 //72 // Compare two MParContainer objects. Returns 0 when equal, -1 when this is73 // smaller and +1 when bigger (like strcmp).74 //75 78 if (this == obj) return 0; 76 79 return fName->CompareTo(obj->GetName()); 77 80 } 78 81 82 // -------------------------------------------------------------------------- 83 // 84 // Copy this to obj. 85 // 79 86 void MParContainer::Copy(TObject &obj) 80 87 { 81 //82 // Copy this to obj.83 //84 88 TObject::Copy(obj); 85 89 *(((MParContainer&)obj).fName) = *fName; … … 87 91 } 88 92 93 // -------------------------------------------------------------------------- 94 // 95 // Encode MParContainer into output buffer. 96 // 89 97 void MParContainer::FillBuffer(char *&buffer) 90 98 { 91 //92 // Encode MParContainer into output buffer.93 //94 99 fName->FillBuffer(buffer); 95 100 fTitle->FillBuffer(buffer); 96 101 } 97 102 103 // -------------------------------------------------------------------------- 104 // 105 // List MParContainer name and title. 106 // 98 107 void MParContainer::ls(Option_t *) 99 108 { 100 //101 // List MParContainer name and title.102 //103 109 TROOT::IndentLevel(); 104 110 *fLog <<"OBJ: " << IsA()->GetName() << "\t" << GetName() << "\t" << GetTitle() << " : " … … 106 112 } 107 113 114 // -------------------------------------------------------------------------- 115 // 116 // Print MParContainer name and title. 117 // 108 118 void MParContainer::Print(Option_t *) 109 119 { 110 //111 // Print MParContainer name and title.112 //113 120 *fLog <<"OBJ: " << IsA()->GetName() << "\t" << GetName() << "\t" << GetTitle() << endl; 114 121 } 115 122 123 // -------------------------------------------------------------------------- 124 // 125 // Change (i.e. set) the name of the MParContainer. 126 // WARNING !! 127 // If the object is a member of a THashTable, THashList container 128 // The HashTable must be Rehashed after SetName 129 // For example the list of objects in the current directory is a THashList 130 // 116 131 void MParContainer::SetName(const char *name) 117 132 { 118 //119 // Change (i.e. set) the name of the MParContainer.120 // WARNING !!121 // If the object is a member of a THashTable, THashList container122 // The HashTable must be Rehashed after SetName123 // For example the list of objects in the current directory is a THashList124 //125 133 *fName = name; 126 134 if (gPad && TestBit(kMustCleanup)) gPad->Modified(); 127 135 } 128 136 137 // -------------------------------------------------------------------------- 138 // 139 // Change (i.e. set) all the MParContainer parameters (name and title). 140 // See also WARNING in SetName 141 // 129 142 void MParContainer::SetObject(const char *name, const char *title) 130 143 { 131 //132 // Change (i.e. set) all the MParContainer parameters (name and title).133 // See also WARNING in SetName134 //135 144 *fName = name; 136 145 *fTitle = title; … … 138 147 } 139 148 149 // -------------------------------------------------------------------------- 150 // 151 // Change (i.e. set) the title of the MParContainer. 152 // 140 153 void MParContainer::SetTitle(const char *title) 141 154 { 142 //143 // Change (i.e. set) the title of the MParContainer.144 //145 155 *fTitle = title; 146 156 if (gPad && TestBit(kMustCleanup)) gPad->Modified(); 147 157 } 148 158 159 // -------------------------------------------------------------------------- 160 // 161 // Return size of the MParContainer part of the TObject. 162 // 149 163 Int_t MParContainer::Sizeof() const 150 164 { 151 //152 // Return size of the MParContainer part of the TObject.153 //154 165 Int_t nbytes = fName->Sizeof() + fTitle->Sizeof(); 155 166 return nbytes; -
trunk/MagicSoft/Mars/mbase/MParList.cc
r749 r752 49 49 ClassImp(MParList) 50 50 51 // 52 // FIXME: The Automatic created classes are NEVER deleted!!!!! 53 // 54 51 // -------------------------------------------------------------------------- 52 // 53 // default constructor 54 // creates an empty list 55 // 55 56 MParList::MParList(const char *name, const char *title) 56 57 { 57 //58 // default constructor59 // creates an empty list60 //61 58 *fName = name ? name : "MParList"; 62 59 *fTitle = title ? title : "List of Parameter Containers"; … … 69 66 } 70 67 68 // -------------------------------------------------------------------------- 69 // 70 // copy constructor 71 // 71 72 MParList::MParList(MParList &ts) 72 73 { 73 //74 // copy constructor75 //76 77 74 fContainer.AddAll(&ts.fContainer); 78 75 } 79 76 77 // -------------------------------------------------------------------------- 78 // 79 // create the Iterator over the tasklist 80 // 80 81 void MParList::SetLogStream(MLog *log) 81 82 { 82 //83 // create the Iterator over the tasklist84 //85 83 TIter Next(&fContainer); 86 84 … … 96 94 } 97 95 96 // -------------------------------------------------------------------------- 97 // 98 // Add an Container to the list. 99 // 100 // If 'where' is given, the object will be added after this. 101 // 98 102 Bool_t MParList::AddToList(MParContainer *obj, MParContainer *where) 99 103 { 100 //101 // Add an Container to the list.102 //103 // If 'where' is given, the object will be added after this.104 //105 106 104 // 107 105 // check if the object (you want to add) exists … … 139 137 } 140 138 139 // -------------------------------------------------------------------------- 140 // 141 // Find an object in the list. 142 // 'name' is the name of the object you are searching for. 143 // 141 144 TObject *MParList::FindObject(const char *name) const 142 145 { 143 //144 // Find an object in the list.145 // 'name' is the name of the object you are searching for.146 //147 146 return (TObject*)fContainer.FindObject(name); 148 147 } 149 148 149 // -------------------------------------------------------------------------- 150 // 151 // Find an object in the list. 152 // 'name' is the name of the object you are searching for. 153 // If the object doesn't exist we try to create one from the 154 // dictionary. If this isn't possible NULL is returned 155 // 150 156 MParContainer *MParList::FindCreateObj(const char *classname, const char *objname) 151 157 { 152 //153 // Find an object in the list.154 // 'name' is the name of the object you are searching for.155 // If the object doesn't exist we try to create one from the156 // dictionary. If this isn't possible NULL is returned157 //158 159 158 // 160 159 // If now object name (name of the object to identify it in the … … 221 220 } 222 221 222 // -------------------------------------------------------------------------- 223 // 224 // print some information about the current status of MParList 225 // 223 226 void MParList::Print(Option_t *t) 224 227 { 225 //226 // print some information about the current status of MParList227 //228 228 *fLog << dbginf << "ParList: " << this->GetName() << " <" << this->GetTitle() << ">" << endl; 229 229 *fLog << endl; -
trunk/MagicSoft/Mars/mbase/MReadTree.cc
r749 r752 53 53 ClassImp(MReadTree) 54 54 55 // -------------------------------------------------------------------------- 55 56 MReadTree::MReadTree(const char *tname, const char *fname, 56 57 const char *name, const char *title) … … 68 69 } 69 70 71 // -------------------------------------------------------------------------- 70 72 MReadTree::~MReadTree() 71 73 { … … 73 75 } 74 76 77 // -------------------------------------------------------------------------- 75 78 /*Int_t*/ void MReadTree::AddFile(const char *fname) 76 79 { … … 84 87 } 85 88 89 // -------------------------------------------------------------------------- 90 // 91 // open file and check if file is really open 92 // 86 93 Bool_t MReadTree::PreProcess (MParList *pList) 87 94 { 88 //89 // open file and check if file is really open90 //91 92 95 // 93 96 // get number of events in this tree … … 154 157 } 155 158 159 // -------------------------------------------------------------------------- 156 160 Bool_t MReadTree::Process() 157 161 { … … 172 176 } 173 177 178 // -------------------------------------------------------------------------- 179 // 180 // Close File 181 // 174 182 Bool_t MReadTree::PostProcess() 175 183 { 176 //177 // Close File178 //179 184 //fFile->Close(); 180 185 … … 182 187 } 183 188 189 // -------------------------------------------------------------------------- 190 // 191 // Get the Event with the current EventNumber fNumEntry 192 // 184 193 Bool_t MReadTree::GetEvent() 185 194 { 186 //187 // Get the Event with the current EventNumber fNumEntry188 //189 195 fChain->GetEntry(fNumEntry); 190 196 … … 192 198 } 193 199 200 // -------------------------------------------------------------------------- 201 // 202 // Decrease the number of the event which is read by Process() next 203 // by one or more 204 // 194 205 Bool_t MReadTree::DecEventNum(UInt_t dec) 195 206 { 196 //197 // Decrease the number of the event which is read by Process() next198 // by one or more199 //200 201 207 //! 202 208 //! this function makes Process() read the event one (or more) before … … 213 219 } 214 220 221 // -------------------------------------------------------------------------- 222 // 223 // Increase the number of the event which is read by Process() next 224 // by one or more 225 // 215 226 Bool_t MReadTree::IncEventNum(UInt_t inc) 216 227 { 217 //218 // Increase the number of the event which is read by Process() next219 // by one or more220 //221 222 228 //! 223 229 //! this function makes Process() read the next (or more) after … … 236 242 } 237 243 244 // -------------------------------------------------------------------------- 245 // 246 // this function makes Process() read event number nr next 247 // 238 248 Bool_t MReadTree::SetEventNum(UInt_t nr) 239 249 { 240 //241 // this function makes Process() read event number nr next242 //243 250 if (nr>=fNumEntries) 244 251 { -
trunk/MagicSoft/Mars/mbase/MTask.cc
r749 r752 63 63 ClassImp(MTask) 64 64 65 // -------------------------------------------------------------------------- 66 // 67 // This is processed before the eventloop starts 68 // 69 // It is the job of the PreProcess to connect the tasks 70 // with the right container in the parameter list. 71 // 72 // the virtual implementation returns kTRUE 73 // 65 74 Bool_t MTask::PreProcess( MParList *pList ) 66 75 { 67 //68 // This is processed before the eventloop starts69 //70 // It is the job of the PreProcess to connect the tasks71 // with the right container in the parameter list.72 //73 // the virtual implementation returns kTRUE74 //75 76 return kTRUE; 76 77 } 77 78 79 // -------------------------------------------------------------------------- 80 // 81 // This is processed for every event in the eventloop 82 // 83 // the virtual implementation returns kTRUE 84 // 78 85 Bool_t MTask::Process() 79 86 { 80 //81 // This is processed for every event in the eventloop82 //83 // the virtual implementation returns kTRUE84 //85 87 return kTRUE; 86 88 } 87 89 90 // -------------------------------------------------------------------------- 91 // 92 // This is processed after the eventloop starts 93 // 94 // the virtual implementation returns kTRUE 95 // 88 96 Bool_t MTask::PostProcess() 89 97 { 90 //91 // This is processed after the eventloop starts92 //93 // the virtual implementation returns kTRUE94 //95 98 return kTRUE; 96 99 } -
trunk/MagicSoft/Mars/mbase/MTaskList.cc
r749 r752 23 23 \* ======================================================================== */ 24 24 25 /////////////////////////////////////////////////////////////////////// 26 // //27 // MTaskList //28 // //29 // Collection of tasks to be processed in the eventloop //30 // //31 /////////////////////////////////////////////////////////////////////// 25 ///////////////////////////////////////////////////////////////////////////// 26 // // 27 // MTaskList // 28 // // 29 // Collection of tasks to be processed in the eventloop // 30 // // 31 ///////////////////////////////////////////////////////////////////////////// 32 32 33 33 #include "MTaskList.h" … … 39 39 ClassImp(MTaskList) 40 40 41 // -------------------------------------------------------------------------- 42 // 43 // the name for the task list must be the same for all task lists 44 // because the task list (at the moment) is identified by exactly 45 // this name in the parameter list (by MEvtLoop::SetParList) 46 // 41 47 MTaskList::MTaskList(const char *title) 42 48 { 43 //44 // the name for the task list must be the same for all task lists45 // because the task list (at the moment) is identified by exactly46 // this name in the parameter list (by MEvtLoop::SetParList)47 //48 49 *fName = "MTaskList"; 49 50 *fTitle = title ? title : "List for Tasks"; 50 51 // 52 // default constructor: create empty task list 53 // 54 } 55 51 } 52 53 // -------------------------------------------------------------------------- 54 // 55 // CopyConstructor 56 // creates a new TaskList and put the contents of an existing 57 // TaskList in the new TaskList. 58 // 56 59 MTaskList::MTaskList(MTaskList &ts) 57 60 { 58 //59 // CopyConstructor60 // creates a new TaskList and put the contents of an existing61 // TaskList in the new TaskList.62 //63 61 fTasks.AddAll(&ts.fTasks); 64 62 } 65 63 64 // -------------------------------------------------------------------------- 65 // 66 // create the Iterator over the tasklist 67 // 66 68 void MTaskList::SetLogStream(MLog *log) 67 69 { 68 //69 // create the Iterator over the tasklist70 //71 70 TIter Next(&fTasks); 72 71 … … 83 82 84 83 84 // -------------------------------------------------------------------------- 85 // 86 // schedule task for execution, whether as first task, or after 87 // 'where'. 'tType' is the event type which should be processed 88 // 85 89 Bool_t MTaskList::AddToList(MTask *task, const char *type, MTask *where) 86 90 { 87 // schedule task for execution, whether as first task, or after88 // 'where'. 'tType' is the event type which should be processed89 91 if (!task) 90 92 return kTRUE; … … 125 127 } 126 128 127 129 // -------------------------------------------------------------------------- 130 // 131 // do pre processing (before eventloop) of all tasks in the task-list 132 // 128 133 Bool_t MTaskList::PreProcess( MParList *pList ) 129 134 { 130 //131 // do pre processing (before eventloop) of all tasks in the task-list132 //133 135 *fLog << "Preprocessing... " << flush; 134 136 … … 156 158 } 157 159 160 // -------------------------------------------------------------------------- 161 // 162 // do the event execution of all tasks in the task-list 163 // 158 164 Bool_t MTaskList::Process() 159 165 { 160 // 161 // do the event execution of all tasks in the task-list 162 // 163 164 // 165 // create the Iterator for the TaskList 166 // 167 TIter Next(&fTasks); 168 MTask *task=NULL; 169 170 // 171 // loop over all tasks for processing 172 // 173 while ( (task=(MTask*)Next()) ) 174 { 175 if (!strcmp(GetStreamId(), task->GetStreamId()) || 176 !strcmp(task->GetStreamId(), "All")) 177 { 178 switch (task->Process()) 179 { 180 case kTRUE: 181 // 182 // everything was OK: go on 183 // 184 continue; 185 186 case kFALSE: 187 // 188 // an error occured: stop eventloop 189 // 190 return kFALSE; 191 192 case kCONTINUE: 193 // 194 // something occured: skip the rest of the tasks for this event 195 // 196 break; 197 } 198 } 199 } 200 return kTRUE; 201 } 202 166 // 167 // create the Iterator for the TaskList 168 // 169 TIter Next(&fTasks); 170 MTask *task=NULL; 171 172 // 173 // loop over all tasks for processing 174 // 175 while ( (task=(MTask*)Next()) ) 176 { 177 // 178 // if the task has the wrong stream id skip it. 179 // 180 if (strcmp(GetStreamId(), task->GetStreamId()) && 181 strcmp(task->GetStreamId(), "All")) 182 continue; 183 184 // 185 // if it has the right stream id execute the Process() function 186 // and check what the result of it is. 187 // 188 switch (task->Process()) 189 { 190 case kTRUE: 191 // 192 // everything was OK: go on 193 // 194 continue; 195 196 case kFALSE: 197 // 198 // an error occured: stop eventloop 199 // 200 return kFALSE; 201 202 case kCONTINUE: 203 // 204 // something occured: skip the rest of the tasks for this event 205 // 206 break; 207 } 208 } 209 return kTRUE; 210 } 211 212 // -------------------------------------------------------------------------- 213 // 214 // do post processing (before eventloop) of all tasks in the task-list 215 // 203 216 Bool_t MTaskList::PostProcess() 204 217 { 205 //206 // do post processing (before eventloop) of all tasks in the task-list207 //208 209 218 *fLog << "Postprocessing... " << flush; 210 219 211 // 212 // create the Iterator for the TaskList 213 // 214 TIter Next(&fTasks); 215 216 MTask *task=NULL; 217 218 // 219 // loop over all tasks for postprocessing 220 // 221 while ( (task=(MTask*)Next()) ) 222 { 223 *fLog << task->GetName() << "... " << flush; 224 225 if (!task->PostProcess()) 226 return kFALSE; 227 } 228 229 *fLog << endl; 230 231 return kTRUE; 232 } 233 234 235 220 // 221 // create the Iterator for the TaskList 222 // 223 TIter Next(&fTasks); 224 225 MTask *task=NULL; 226 227 // 228 // loop over all tasks for postprocessing 229 // 230 while ( (task=(MTask*)Next()) ) 231 { 232 *fLog << task->GetName() << "... " << flush; 233 234 if (!task->PostProcess()) 235 return kFALSE; 236 } 237 238 *fLog << endl; 239 240 return kTRUE; 241 } 242 243 // -------------------------------------------------------------------------- 236 244 void MTaskList::Print(Option_t *t) 237 245 { -
trunk/MagicSoft/Mars/mbase/Makefile
r604 r752 43 43 MTime.cc \ 44 44 MLog.cc \ 45 MHtml.cc \ 45 46 MLogManip.cc 46 47
Note:
See TracChangeset
for help on using the changeset viewer.