introducing status management: The processing per subdetector is divided into several...
[u/mrichter/AliRoot.git] / SHUTTLE / AliShuttleStatus.h
CommitLineData
4a6b108b 1#ifndef ALISHUTTLESTATUS_H
2#define ALISHUTTLESTATUS_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9//
10// This class stores the status of the Shuttle processing for a given run and a given detector
11//
12
13#include <TObject.h>
14
15class AliShuttleStatus : public TObject
16{
17public:
18 enum Status {
19 kInvalid = 0,
20 kStarted,
21 kDCSStarted,
22 kDCSError,
23 kPPStarted,
24 kPPError,
25 kPPDone,
26 kDone, // final
27 kFailed // final
28 // TODO see if one can add status of storage here
29 };
30
31 AliShuttleStatus();
32 AliShuttleStatus(const AliShuttleStatus& c);
33
34 ~AliShuttleStatus();
35
36 AliShuttleStatus& operator=(const AliShuttleStatus& c);
37 virtual void Copy(TObject& c) const;
38
39 AliShuttleStatus(Status status);
40
41 UInt_t GetTimeStamp() const { return fTimeStamp; }
42 void SetTimeStamp(UInt_t timeStamp) { fTimeStamp = timeStamp; }
43
44 Status GetStatus() const { return fStatus; }
45 const char* GetStatusName() const { return GetStatusName(fStatus); }
46 void SetStatus(Status status);
47
48 Int_t GetCount() const { return fCount; }
49 void SetCount(Int_t count) { fCount = count; }
50 void IncreaseCount() { fCount++; }
51
52 static const char* GetStatusName(Status status);
53
54protected:
55 UInt_t fTimeStamp; // timestamp of the last change
56 Status fStatus; // status of the processing
57 Int_t fCount; // number of retries
58
59 ClassDef(AliShuttleStatus, 1);
60};
61
62#endif