/*
********************************************************
Copyright 2000 MBARI.
MBARI Proprietary Information. All rights reserved.
NOTE: This file is automatically generated.
DO NOT MODIFY.
********************************************************
*/

#ifndef __MultibeamerIF_H
#define __MultibeamerIF_H

#include "TaskInterface.h"

#include "TimeIF.h"

#define MultibeamerIFServerName "MultibeamerIFServer"

class MultibeamerIF : public TaskInterface {

  friend class MultibeamerIF_SK;

  public:

  // Forward declarations of public structures
  struct MB_Data;
  
  
  typedef float Ranges[512];
  
  struct MB_Data {
    TimeIF::TimeSpec updateTime;
    long nbeams;
    MultibeamerIF::Ranges ranges;
    long pingNum;
  };
  MultibeamerIF(const char *name, int timeout = 10);

  MultibeamerIF(const char *name, const char *serverName, int timeout = 10);

  ~MultibeamerIF();

  ///////////////////////////////////////////////////////////////////
  // range returns the calculated range from the Multibeam data record
  //
  void get_data(MultibeamerIF::MB_Data *data);

  
  protected:

  // Message codes for each method
  enum MultibeamerIFMsgCode {
    Get_dataMsgCode
  };

  // Define message structure for each method
  struct Get_dataMsg : Request, Reply {
    MultibeamerIF::MB_Data data;
  
  } _get_dataMsg;

};

#endif

