update (alberto):
[u/mrichter/AliRoot.git] / SHUTTLE / AliShuttleLogbookEntry.h
1 #ifndef ALI_SHUTTLE_LOGBOOK_ENTRY_H
2 #define ALI_SHUTTLE_LOGBOOK_ENTRY_H
3
4
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 /* $Id$ */
9
10 //
11 // This class is a container for the data queried from DAQ's logbook and logbook_shuttle tables.
12 //
13
14 #include <TObject.h>
15 #include "AliShuttle.h"
16
17 class TSQLServer;
18
19 class AliShuttleLogbookEntry: public TObject {
20
21 public:
22         enum Status {
23                 kUnprocessed = 0,
24                 kInactive,
25                 kFailed,  // final
26                 kDone // final
27         };
28
29         AliShuttleLogbookEntry();
30         AliShuttleLogbookEntry(Int_t run, UInt_t startTime, UInt_t endTime, Status* status=0);
31         ~AliShuttleLogbookEntry();
32
33         AliShuttleLogbookEntry& operator=(const AliShuttleLogbookEntry& c);
34         AliShuttleLogbookEntry(const AliShuttleLogbookEntry& c);
35         virtual void Copy(TObject& c) const;
36
37         Int_t GetRun() const {return fRun;}
38         UInt_t GetStartTime() const  {return fStartTime;}
39         UInt_t GetEndTime() const {return fEndTime;}
40
41         void SetRun(Int_t run) {fRun=run;}
42         void SetStartTime(UInt_t startTime) {fStartTime=startTime;}
43         void SetEndTime(UInt_t endTime) {fEndTime=endTime;}
44
45         Status GetDetectorStatus(const char* detCode) const;
46         Status GetDetectorStatus(Int_t detPos) const;
47         Status* GetDetectorStatus() const {return (Status*) fDetectorStatus;}
48
49         void SetDetectorStatus(const char* detCode, Status status);
50         void SetDetectorStatus(Status* status);
51         void SetDetectorStatus(UInt_t detPos, Status status);
52
53         Bool_t IsDone() const;
54
55         static const char* GetDetectorStatusName(Status status);
56         void Print(Option_t *option) const;
57
58         // TODO Test only, remove later!
59         Bool_t Connect();
60         Bool_t QueryShuttleLogbook(Int_t runNumber=-1);
61         Bool_t UpdateShuttleLogbook();
62         Bool_t UpdateShuttleLogbook(const char* detCode, Status status);
63         Bool_t InsertNewRun(Int_t runNumber=-1);
64
65
66 private:
67
68         Int_t fRun;                     // Run number
69         UInt_t fStartTime;              // Run start time
70         UInt_t fEndTime;                // Run end time
71         Status fDetectorStatus[AliShuttle::kNDetectors];        // Detector status array
72
73         // TODO Test only, remove later!
74         TSQLServer* fServer;            // pointer to the MySQLServer which handles the DAQ logbook
75
76         ClassDef(AliShuttleLogbookEntry, 0)
77 };
78
79 #endif
80