]>
Commit | Line | Data |
---|---|---|
0b936dc0 | 1 | #ifndef ALIMUONPAINTERDATAREGISTRY_H |
2 | #define ALIMUONPAINTERDATAREGISTRY_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: AliMUONPainterDataRegistry.h 26812 2008-06-20 15:22:59Z laphecet $ | |
8 | ||
9 | /// \ingroup graphics | |
10 | /// \class AliMUONPainterDataRegistry | |
11 | /// \brief Registry for painter data sources | |
12 | /// | |
13 | // Author Laurent Aphecetche, Subatech | |
14 | ||
15 | #ifndef ROOT_TObject | |
16 | # include "TObject.h" | |
17 | #endif | |
18 | #ifndef ROOT_TQObject | |
19 | # include <TQObject.h> | |
20 | #endif | |
21 | ||
22 | class TObjArray; | |
23 | class AliMUONVTrackerData; | |
24 | class AliMUONVTrackerDataMaker; | |
25 | ||
26 | class AliMUONPainterDataRegistry : public TObject, public TQObject | |
27 | { | |
28 | public: | |
29 | virtual ~AliMUONPainterDataRegistry(); | |
30 | ||
31 | AliMUONVTrackerDataMaker* DataMaker(Int_t i) const; | |
32 | ||
33 | AliMUONVTrackerData* DataSource(Int_t i) const; | |
34 | ||
35 | AliMUONVTrackerData* DataSource(const char* name) const; | |
36 | ||
37 | AliMUONVTrackerData* InteractiveReadOutConfig() const; | |
38 | ||
57e2ad1a | 39 | void DataSourceWasRegistered(const AliMUONVTrackerData* data); // *SIGNAL* |
0b936dc0 | 40 | |
57e2ad1a | 41 | void DataSourceWasUnregistered(const AliMUONVTrackerData* data); // *SIGNAL* |
0b936dc0 | 42 | |
57e2ad1a | 43 | void DataMakerWasRegistered(const AliMUONVTrackerDataMaker* reader); // *SIGNAL* |
0b936dc0 | 44 | |
57e2ad1a | 45 | void DataMakerWasUnregistered(const AliMUONVTrackerDataMaker* reader); // *SIGNAL* |
0b936dc0 | 46 | |
47 | static AliMUONPainterDataRegistry* Instance(); | |
48 | ||
49 | Int_t NumberOfDataMakers() const; | |
50 | ||
51 | /// Number of data sources = data makers | |
52 | Int_t NumberOfDataSources() const { return NumberOfDataMakers(); } | |
53 | ||
54 | void Print(Option_t* opt) const; | |
55 | ||
56 | void Register(AliMUONVTrackerDataMaker* reader); | |
57 | ||
58 | Bool_t Unregister(AliMUONVTrackerDataMaker* reader); | |
59 | ||
60 | void DeleteZombies(); | |
61 | ||
62 | private: | |
63 | /// Not implemented | |
64 | AliMUONPainterDataRegistry(); | |
65 | /// Not implemented | |
66 | AliMUONPainterDataRegistry(const AliMUONPainterDataRegistry&); | |
67 | /// Not implemented | |
68 | AliMUONPainterDataRegistry& operator=(const AliMUONPainterDataRegistry&); | |
69 | ||
70 | void CreateInteractiveReadOutConfig() const; | |
71 | ||
72 | private: | |
73 | static AliMUONPainterDataRegistry* fgInstance; ///< unique instance | |
74 | TObjArray* fDataMakers; ///< data makers | |
75 | TObjArray* fZombies; ///< data readers to be deleted | |
76 | mutable AliMUONVTrackerData* fInteractiveReadOutConfig; ///< clickable readout configuration | |
77 | ||
78 | ClassDef(AliMUONPainterDataRegistry,1) // Registry for AliMUONVTrackerDataMaker objects | |
79 | }; | |
80 | ||
81 | #endif |