ROOT logo
#ifndef ALITRIGCONNECTOR_H
#define ALITRIGCONNECTOR_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */
// Author: Andrei Gheata, 28/07/2009

//==============================================================================
//   AliTrigConnector - Class representing a connector between an output of a 
// device (feeder) and an arbitrary number of inputs of other devices.
//==============================================================================

#ifndef ROOT_TNamed
#include "TNamed.h"
#endif

class TObjArray;
class AliTrigDevice;
class AliTrigEvent;

class AliTrigConnector : public TNamed {

public:
  AliTrigConnector() : TNamed(), fFeeder(0), fOutput(0), fNclients(0), fArraySize(0), fInputs(0), fDevices(0) {}
  AliTrigConnector(const char *name, AliTrigDevice *feeder, Int_t output) : TNamed(name, ""), fFeeder(feeder), fOutput(output), fNclients(0), fArraySize(0), fInputs(0), fDevices(0) {}
  virtual ~AliTrigConnector();

  
  // Connect a client input.
  void                      Connect(AliTrigDevice *client, Int_t input);

  virtual void              Print(Option_t *option="") const;  
  
  // Transmit the feeder signal to all connected inputs. Different device types
  // call different Transmit() methods.
  Bool_t                    Transmit(Bool_t value);
  Bool_t                    Transmit(AliTrigEvent *event);
  
private:
  AliTrigConnector(const AliTrigConnector &other);
  AliTrigConnector &operator=(const AliTrigConnector &other);

  AliTrigDevice            *fFeeder;    // Feeder device
  Int_t                     fOutput;    // Output slot index for the feeder
  Int_t                     fNclients;  // Number of clients
  Int_t                     fArraySize; // Size of the clients array
  Int_t                    *fInputs;    //[fArraySize] Array of input slot indices
  TObjArray                *fDevices;   // Array of client devices
   
  ClassDef(AliTrigConnector,1)  // Class representing a connector between devices.
};
#endif
 AliTrigConnector.h:1
 AliTrigConnector.h:2
 AliTrigConnector.h:3
 AliTrigConnector.h:4
 AliTrigConnector.h:5
 AliTrigConnector.h:6
 AliTrigConnector.h:7
 AliTrigConnector.h:8
 AliTrigConnector.h:9
 AliTrigConnector.h:10
 AliTrigConnector.h:11
 AliTrigConnector.h:12
 AliTrigConnector.h:13
 AliTrigConnector.h:14
 AliTrigConnector.h:15
 AliTrigConnector.h:16
 AliTrigConnector.h:17
 AliTrigConnector.h:18
 AliTrigConnector.h:19
 AliTrigConnector.h:20
 AliTrigConnector.h:21
 AliTrigConnector.h:22
 AliTrigConnector.h:23
 AliTrigConnector.h:24
 AliTrigConnector.h:25
 AliTrigConnector.h:26
 AliTrigConnector.h:27
 AliTrigConnector.h:28
 AliTrigConnector.h:29
 AliTrigConnector.h:30
 AliTrigConnector.h:31
 AliTrigConnector.h:32
 AliTrigConnector.h:33
 AliTrigConnector.h:34
 AliTrigConnector.h:35
 AliTrigConnector.h:36
 AliTrigConnector.h:37
 AliTrigConnector.h:38
 AliTrigConnector.h:39
 AliTrigConnector.h:40
 AliTrigConnector.h:41
 AliTrigConnector.h:42
 AliTrigConnector.h:43
 AliTrigConnector.h:44
 AliTrigConnector.h:45
 AliTrigConnector.h:46
 AliTrigConnector.h:47
 AliTrigConnector.h:48
 AliTrigConnector.h:49
 AliTrigConnector.h:50
 AliTrigConnector.h:51
 AliTrigConnector.h:52
 AliTrigConnector.h:53