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

#ifndef __ClusterIF_H
#define __ClusterIF_H

#include "TaskInterface.h"


#define ClusterIFServerName "ClusterIFServer"

class ClusterIF : public TaskInterface {

  friend class ClusterIF_SK;

  public:

  
  enum Status {
    Ok,
    NotReady,
    OperationFailed,
    FailedRead
  };

  
  typedef char Name[32];
  
  ClusterIF(const char *name, int timeout = 10);

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

  ~ClusterIF();

  ClusterIF::Status getCluster(ClusterIF::Name clsType, unsigned short *best, double *distance);

  
  protected:

  // Message codes for each method
  enum ClusterIFMsgCode {
    GetClusterMsgCode
  };

  // Define message structure for each method
  struct GetClusterMsg : Request, Reply {
    ClusterIF::Status returnVal;
    ClusterIF::Name clsType;
    unsigned short best;
    double distance;
  
  } _getClusterMsg;

};

#endif

