23042b30dc61619775d9169b8cdda8c75ff64c9b
[u/mrichter/AliRoot.git] / RAW / AliRawReaderDateOnline.h
1 #ifndef ALIRAWREADERDATEONLINE_H
2 #define ALIRAWREADERDATEONLINE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 ///////////////////////////////////////////////////////////////////////////////
7 ///
8 /// This is a class for reading raw data from a date monitoring libraries.
9 /// It supports two modes - event taken from shared memory via DATE monitoring
10 /// libs, or an emulation mode when the events are taken from a DATE file using
11 /// the same monitoring libs.
12 /// The constructor requires an argument:
13 ///
14 /// : - events are taken from shared memory
15 ///  or
16 /// <DATE_filename> - events are taken from date file
17 ///
18 /// Cvetan Cheshkov 1/04/2008
19 ///////////////////////////////////////////////////////////////////////////////
20
21 #include <TSysEvtHandler.h>
22
23 #include "AliRawReaderDate.h"
24
25 class AliRawReaderDateOnline: public AliRawReaderDate {
26   public :
27     AliRawReaderDateOnline(const char* fileName);
28     virtual ~AliRawReaderDateOnline();
29
30     virtual Bool_t   NextEvent();
31     //    virtual Bool_t   RewindEvents();
32
33     // Method which can be used in order to force the auto-save on
34     // ESD tree inside AliReconstruction. For the moment it will be
35     // activated only for AliRawReaderDateOnline.
36     virtual Bool_t   UseAutoSaveESD() const { return kTRUE; }
37
38     // Method triggered by signal hanlder
39     // Set fStop to false in which case
40     // NextEvent() returns fFALSE and the
41     // processing of raw data stops
42     virtual void     Stop();
43
44   protected:
45     class AliRawReaderDateIntHandler : public TSignalHandler {
46     public:
47     AliRawReaderDateIntHandler(AliRawReaderDateOnline *rawReader):
48       TSignalHandler(kSigUser1, kFALSE), fRawReader(rawReader) { }
49       Bool_t Notify() {
50         Info("Notify", "received a SIGUSR1 signal");
51         fRawReader->Stop();
52         return kTRUE;
53       }
54     private:
55       AliRawReaderDateOnline *fRawReader;   // raw-reader to signal
56
57       AliRawReaderDateIntHandler(const AliRawReaderDateIntHandler& handler); // Not implemented
58       AliRawReaderDateIntHandler& operator=(const AliRawReaderDateIntHandler& handler); // Not implemented
59     };
60
61     virtual void     SelectEvents(Int_t type, ULong64_t triggerMask = 0, const char *triggerExpr = NULL);
62
63   private:
64     AliRawReaderDateOnline(const AliRawReaderDateOnline& rawReader);
65     AliRawReaderDateOnline& operator = (const AliRawReaderDateOnline& rawReader);
66
67     Bool_t           fStop; // raw-reader signaled to stop
68
69     ClassDef(AliRawReaderDateOnline, 0) // class for reading DATE raw data from shared memory
70 };
71
72 #endif