]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALITRIGCONNECTOR_H | |
2 | #define ALITRIGCONNECTOR_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | // Author: Andrei Gheata, 28/07/2009 | |
8 | ||
9 | //============================================================================== | |
10 | // AliTrigConnector - Class representing a connector between an output of a | |
11 | // device (feeder) and an arbitrary number of inputs of other devices. | |
12 | //============================================================================== | |
13 | ||
14 | #ifndef ROOT_TNamed | |
15 | #include "TNamed.h" | |
16 | #endif | |
17 | ||
18 | class TObjArray; | |
19 | class AliTrigDevice; | |
20 | class AliTrigEvent; | |
21 | ||
22 | class AliTrigConnector : public TNamed { | |
23 | ||
24 | public: | |
25 | AliTrigConnector() : TNamed(), fFeeder(0), fOutput(0), fNclients(0), fArraySize(0), fInputs(0), fDevices(0) {} | |
26 | AliTrigConnector(const char *name, AliTrigDevice *feeder, Int_t output) : TNamed(name, ""), fFeeder(feeder), fOutput(output), fNclients(0), fArraySize(0), fInputs(0), fDevices(0) {} | |
27 | virtual ~AliTrigConnector(); | |
28 | ||
29 | ||
30 | // Connect a client input. | |
31 | void Connect(AliTrigDevice *client, Int_t input); | |
32 | ||
33 | virtual void Print(Option_t *option="") const; | |
34 | ||
35 | // Transmit the feeder signal to all connected inputs. Different device types | |
36 | // call different Transmit() methods. | |
37 | Bool_t Transmit(Bool_t value); | |
38 | Bool_t Transmit(AliTrigEvent *event); | |
39 | ||
40 | private: | |
41 | AliTrigConnector(const AliTrigConnector &other); | |
42 | AliTrigConnector &operator=(const AliTrigConnector &other); | |
43 | ||
44 | AliTrigDevice *fFeeder; // Feeder device | |
45 | Int_t fOutput; // Output slot index for the feeder | |
46 | Int_t fNclients; // Number of clients | |
47 | Int_t fArraySize; // Size of the clients array | |
48 | Int_t *fInputs; //[fArraySize] Array of input slot indices | |
49 | TObjArray *fDevices; // Array of client devices | |
50 | ||
51 | ClassDef(AliTrigConnector,1) // Class representing a connector between devices. | |
52 | }; | |
53 | #endif |