/////////////////////////////////////////////////////////////////////////////////
//
// PURPOSE:  DropWeight Log Class.
// AUTHOR:   Rob McEwen.
// DATE:     01/3/9
// COMMENTS: 
//
////////////////////////////////////////////////////////////////////////////////
//

#ifndef GULPERLOG_H
#define GULPERLOG_H

#define GulperLogName "Gulper"

#include "DataLogWriter.h"
#include "IntegerData.h"
#include "TimeTag.h"
#include "SimulatedGulperServer.h"
#include "TimeP.h"
#include "Syslog.h"
#include "ShortData.h"
#include "DoubleData.h"

class Gulper;
class SimulatedGulperServer;

class GulperLog: public DataLogWriter {

public:

  ///////////////////////////////////////////////////////////////////
  // Constructor
  // [input] fileFormat: Specifies either DataLog::AsciiFormat or 
  //         DataLog::BinaryFormat.
  GulperLog(Gulper                *gulper, DataLog::FileFormat fileFormat);
  GulperLog(SimulatedGulperServer *gulper, DataLog::FileFormat fileFormat);

  ~GulperLog();

protected:
  Gulper *_driver;
  SimulatedGulperServer *_simServer;

  ///////////////////////////////////////////////////////////////////
  // Set values in record array elements. This virtual method is called
  // by DataLogWriter::write()
  virtual void setFields();

  void init();

  ShortData   *_num;

};

#endif
