/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : DropWeightServer.cc                                           */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#include "SimulatedGulperServer.h"

SimulatedGulperServer::SimulatedGulperServer()
  : GulperIF_SK()
{
   char *driverName = "";
   Syslog::write("Begin SimulatedGulperServer constructor.");
   _gulperOutput = new GulperOutput();
  try 
  {
     _log = new GulperLog( this, DataLog::BinaryFormat);
  }
  catch ( ... ) 
  {
     throw Exception("SimulatedGulperServer - Log constructor failed.\n");
  }
  _gulperOutput->data.FireGulper = -1;
  _gulperOutput->write();
  _driverName = strdup(driverName);

  for( int i=0; i<NGULPERS; i++ ) _gulperState[i] = GulperIF::Ready;
  Syslog::write("End SimulatedGulperServer constructor.");
}


SimulatedGulperServer::~SimulatedGulperServer()
{
  free((void *)_driverName);
  delete _gulperOutput;
  delete _log;
}


void SimulatedGulperServer::fireGulper(long gulperToFire)
{
   _gulperOutput->data.FireGulper = gulperToFire;
   _gulperOutput->write();
  _gulperState[gulperToFire] = GulperIF::Used;
  Syslog::write("SimulatedGulperServer:: Fired gulper %d.", gulperToFire);
  _log->write();
}

void SimulatedGulperServer::state( GulperIF::gs gulperState )
{
   for( int i=0; i<NGULPERS; i++ ) gulperState[i] = _gulperState[i];
}

int SimulatedGulperServer::spawnAuxTasks()
{
  return 0;
}

