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

/* $Id$ */
// Author: Andrei Gheata, 04/01/2010

//==============================================================================
//
//   AliTrigScheduledEntry - ABC for scheduled responses of a device that is
//                           able to fire-up single response functions or the 
//                           full device scheduled sequence. The start time is
//                           in arbitrary units and in case it is 0 will not be
//                           considered when ordering by time by schedulers.
// 
//==============================================================================

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

class AliTrigDevice;

class AliTrigScheduledEntry : public TNamed {

protected:
  Int_t             fStartTime;           // Time to fire-up
  AliTrigDevice    *fDevice;              // Device to fire-up
  
private:
  AliTrigScheduledEntry(const AliTrigScheduledEntry &other);
  AliTrigScheduledEntry &operator=(const AliTrigScheduledEntry &other);

public:
  AliTrigScheduledEntry() : TNamed(), fStartTime(0), fDevice(NULL) {}
  AliTrigScheduledEntry(const char *name, AliTrigDevice *device, Int_t start=0);
  virtual ~AliTrigScheduledEntry() {}

  Int_t             GetStartTime() const     {return fStartTime;}
  AliTrigDevice    *GetDevice()    const     {return fDevice;}
  virtual void      FireUp(Int_t time)                                      = 0;
  void              SetStartTime(Int_t time) {fStartTime = time;}

  ClassDef(AliTrigScheduledEntry, 1) // ABC for scheduled responses
};   

//==============================================================================
//
//   AliTrigScheduledResponse - Scheduled device response function. Fires-up a
//                              single response function at a time.
//
//==============================================================================

class AliTrigScheduledResponse : public AliTrigScheduledEntry {

private:
  Int_t             fOutputID;            // Device output to be fired

private:
  AliTrigScheduledResponse(const AliTrigScheduledResponse &other);
  AliTrigScheduledResponse &operator=(const AliTrigScheduledResponse &other);

public:
  AliTrigScheduledResponse() : AliTrigScheduledEntry(), fOutputID(-1) {}
  AliTrigScheduledResponse(const char *name, AliTrigDevice *device, Int_t output, Int_t start=0);
  virtual ~AliTrigScheduledResponse() {}
  
  Int_t             GetOutputID() const      {return fOutputID;}
  virtual void      FireUp(Int_t time);
  
  ClassDef(AliTrigScheduledResponse, 1) // Scheduled response function for a device
};

//==============================================================================
//
//   AliTrigScheduledDevice - Scheduled entry for a full device sequence. Invokes
//                            the device scheduler when firing-up.
//
//==============================================================================

class AliTrigScheduledDevice : public AliTrigScheduledEntry {

private:
  AliTrigScheduledDevice(const AliTrigScheduledDevice &other);
  AliTrigScheduledDevice &operator=(const AliTrigScheduledDevice &other);

public:
  AliTrigScheduledDevice() : AliTrigScheduledEntry() {}
  AliTrigScheduledDevice(const char *name, AliTrigDevice *device, Int_t start=0);
  virtual ~AliTrigScheduledDevice() {}
  
  virtual void      FireUp(Int_t time);
  
  ClassDef(AliTrigScheduledDevice, 1) // Scheduled device replay
};
#endif
 AliTrigScheduledEntry.h:1
 AliTrigScheduledEntry.h:2
 AliTrigScheduledEntry.h:3
 AliTrigScheduledEntry.h:4
 AliTrigScheduledEntry.h:5
 AliTrigScheduledEntry.h:6
 AliTrigScheduledEntry.h:7
 AliTrigScheduledEntry.h:8
 AliTrigScheduledEntry.h:9
 AliTrigScheduledEntry.h:10
 AliTrigScheduledEntry.h:11
 AliTrigScheduledEntry.h:12
 AliTrigScheduledEntry.h:13
 AliTrigScheduledEntry.h:14
 AliTrigScheduledEntry.h:15
 AliTrigScheduledEntry.h:16
 AliTrigScheduledEntry.h:17
 AliTrigScheduledEntry.h:18
 AliTrigScheduledEntry.h:19
 AliTrigScheduledEntry.h:20
 AliTrigScheduledEntry.h:21
 AliTrigScheduledEntry.h:22
 AliTrigScheduledEntry.h:23
 AliTrigScheduledEntry.h:24
 AliTrigScheduledEntry.h:25
 AliTrigScheduledEntry.h:26
 AliTrigScheduledEntry.h:27
 AliTrigScheduledEntry.h:28
 AliTrigScheduledEntry.h:29
 AliTrigScheduledEntry.h:30
 AliTrigScheduledEntry.h:31
 AliTrigScheduledEntry.h:32
 AliTrigScheduledEntry.h:33
 AliTrigScheduledEntry.h:34
 AliTrigScheduledEntry.h:35
 AliTrigScheduledEntry.h:36
 AliTrigScheduledEntry.h:37
 AliTrigScheduledEntry.h:38
 AliTrigScheduledEntry.h:39
 AliTrigScheduledEntry.h:40
 AliTrigScheduledEntry.h:41
 AliTrigScheduledEntry.h:42
 AliTrigScheduledEntry.h:43
 AliTrigScheduledEntry.h:44
 AliTrigScheduledEntry.h:45
 AliTrigScheduledEntry.h:46
 AliTrigScheduledEntry.h:47
 AliTrigScheduledEntry.h:48
 AliTrigScheduledEntry.h:49
 AliTrigScheduledEntry.h:50
 AliTrigScheduledEntry.h:51
 AliTrigScheduledEntry.h:52
 AliTrigScheduledEntry.h:53
 AliTrigScheduledEntry.h:54
 AliTrigScheduledEntry.h:55
 AliTrigScheduledEntry.h:56
 AliTrigScheduledEntry.h:57
 AliTrigScheduledEntry.h:58
 AliTrigScheduledEntry.h:59
 AliTrigScheduledEntry.h:60
 AliTrigScheduledEntry.h:61
 AliTrigScheduledEntry.h:62
 AliTrigScheduledEntry.h:63
 AliTrigScheduledEntry.h:64
 AliTrigScheduledEntry.h:65
 AliTrigScheduledEntry.h:66
 AliTrigScheduledEntry.h:67
 AliTrigScheduledEntry.h:68
 AliTrigScheduledEntry.h:69
 AliTrigScheduledEntry.h:70
 AliTrigScheduledEntry.h:71
 AliTrigScheduledEntry.h:72
 AliTrigScheduledEntry.h:73
 AliTrigScheduledEntry.h:74
 AliTrigScheduledEntry.h:75
 AliTrigScheduledEntry.h:76
 AliTrigScheduledEntry.h:77
 AliTrigScheduledEntry.h:78
 AliTrigScheduledEntry.h:79
 AliTrigScheduledEntry.h:80
 AliTrigScheduledEntry.h:81
 AliTrigScheduledEntry.h:82
 AliTrigScheduledEntry.h:83
 AliTrigScheduledEntry.h:84
 AliTrigScheduledEntry.h:85
 AliTrigScheduledEntry.h:86
 AliTrigScheduledEntry.h:87
 AliTrigScheduledEntry.h:88
 AliTrigScheduledEntry.h:89
 AliTrigScheduledEntry.h:90
 AliTrigScheduledEntry.h:91
 AliTrigScheduledEntry.h:92
 AliTrigScheduledEntry.h:93
 AliTrigScheduledEntry.h:94
 AliTrigScheduledEntry.h:95
 AliTrigScheduledEntry.h:96
 AliTrigScheduledEntry.h:97