#ifndef ALITRIGMODULE_H
#define ALITRIGMODULE_H
#ifndef ALITRIGDEVICE_H
#include "AliTrigDevice.h"
#endif
class TObjArray;
class AliTrigEvent;
class AliTrigModule : public AliTrigDevice {
public:
AliTrigModule() : AliTrigDevice(), fInputs(0), fOutputs(0), fOutputConnectors(0) {}
AliTrigModule(const char *name, Int_t ninputs, Int_t noutputs) : AliTrigDevice(name, ninputs, noutputs), fInputs(0), fOutputs(0), fOutputConnectors(0) {}
virtual ~AliTrigModule();
virtual Bool_t Connect(Int_t output, AliTrigDevice *other, Int_t at_input);
virtual Bool_t CreateDevice() = 0;
void DefineInput(Int_t islot, AliTrigEvent *event);
void DefineOutput(Int_t islot, AliTrigEvent *event);
virtual Bool_t Response(Int_t output);
AliTrigEvent *GetInputValue(Int_t input) const;
AliTrigEvent *GetOutputValue(Int_t output) const;
virtual void ResetInputs();
virtual Bool_t SetInputType(Int_t , const char *) {return kFALSE;}
virtual Bool_t SetInputValue(Int_t , Bool_t ) {return kFALSE;}
virtual Bool_t SetInputValue(Int_t input, AliTrigEvent *event);
private:
AliTrigModule(const AliTrigModule &other);
AliTrigModule &operator=(const AliTrigModule &other);
virtual Bool_t Trigger(Int_t ioutput) = 0;
protected:
TObjArray *fInputs;
TObjArray *fOutputs;
TObjArray *fOutputConnectors;
ClassDef(AliTrigModule,1)
};
#endif