#ifndef _SMARTSAMPLER_OUTPUT_HH
#define _SMARTSAMPLER_OUTPUT_HH

#include "SharedData.h"
#include "SmartSamplerIF_SK.h"
#include "ssdbg.hh"

#define NGULPERS 10
//#define MAX_DTS 10
#define SmartSamplerOutputName "SmartSamplerOutput"

/****************************************************************************
 *
 * Output reflects the state of the SmartSampler.  This includes
 * gulperState      => free, allocated, fired
 * gulperTime       => time of entry into current state
 * gulperAllocation => DecisionTool associated with each gulper
 *
 ****************************************************************************/

class SmartSamplerOutput :public SharedData {
public:
  struct Data 
  {
    short dtNum; // Number of instantiated DecisionTools.
    SmartSamplerIF::GulperInfoArrayType gulperInfo;
  }; // SmartSamplerOutput::Data
  Data data;

  SmartSamplerOutput(Access access = NoAccess):
    SharedData(SmartSamplerOutputName,sizeof(SmartSamplerOutput::Data),access, false){
    ssdbg(DBG_LOAD)("Initializing SmartSamplerOutput.");
  };
  ~SmartSamplerOutput(){ssdbg(DBG_CLEAN)("destroying SmartSamplerOutput");};

  void read(){SharedData::read((void *)&data);};
  void write(){SharedData::write((void *)&data);};
}; // SmartSamplerOutput

#endif // _SMARTSAMPLER_OUTPUT_HH 




