/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : LayeredControlServer.h                                        */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#ifndef _LAYEREDCONTROLSERVER_H
#define _LAYEREDCONTROLSERVER_H

#include "LayeredControlIF_SK.h"
#include "LayeredControlInput.h"
#include "LayeredControlOutput.h"

class LayeredControlServer : public LayeredControlIF_SK {

public:

  LayeredControlServer( int, char ** );
  ~LayeredControlServer();

protected:
  
  char **_argv;
  int _argc;

  virtual double elapsedMissionTime();
  virtual void abortMission();
  virtual Boolean abortingMission();

  void state(double *elapsedTime,
             LayeredControlIF::MissionState *state, 
	     LayeredControlIF::Name behaviorName, short *behaviorIndex);

  virtual int spawnAuxTasks();

  LayeredControlInput *_input;
  LayeredControlOutput *_output;
};


#endif

