Merge branch 'feature-doxygen'
[u/mrichter/AliRoot.git] / TRIGGER / AliTrigConnector.h
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