/****************************************************************************/
/* Copyright (c) 2001 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : BuoyLauncherInput.h                                          */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 06/18/2001                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/

#ifndef _BUOYLAUNCHERINPUT_H
#define _BUOYLAUNCHERINPUT_H

#include <time.h>
#include "SharedData.h"
#include "BuoyLauncherIF.h"

#define BuoyLauncherInputName "BuoyLauncherInput_ShmemName"

/*
CLASS 
BuoyLauncherInput

DESCRIPTION
Ouput of BuoyLauncher driver

AUTHOR
Rich Henthorn
*/
class BuoyLauncherInput : public SharedData {

public:

  struct BuoyLauncherData {
    // Buoy Positioning
    int     _currentBuoy;  // Used to choose the "current" buoy

    // Time data
    time_t  _newTime;      // UTC time value for launcher to use

    // Data to download
    BuoyLauncherIF::Filename _dataFilename;

    // Command - temporary command structure to be replaced by events
    char _command;
  };

  BuoyLauncherInput(Access access = NoAccess, Boolean init = False);

  ~BuoyLauncherInput();


  ////////////////////////////////////////////////////////////////////
  // Read from shared memory to this object's Data::data element
  void read();

  ////////////////////////////////////////////////////////////////////
  // Write from this object's Data::data element to shared memory
  void write();

  BuoyLauncherData data;

};

#endif
