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

#ifndef __RemoteAgentIF_H
#define __RemoteAgentIF_H

#include "TaskInterface.h"


#define RemoteAgentIFServerName "RemoteAgentIFServer"

class RemoteAgentIF : public TaskInterface {

  friend class RemoteAgentIF_SK;

  public:

  
  
  typedef char poinkCommand[128];
  
  RemoteAgentIF(const char *name, int timeout = 10);

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

  ~RemoteAgentIF();

  void setDebugLevel(short level);

  short getDebugLevel();

  void requestCommand(short mtype, short timeType, short period);

  void poinkerCommand(RemoteAgentIF::poinkCommand command);

  void reregisterServer();

  
  protected:

  // Message codes for each method
  enum RemoteAgentIFMsgCode {
    SetDebugLevelMsgCode,
    GetDebugLevelMsgCode,
    RequestCommandMsgCode,
    PoinkerCommandMsgCode,
    ReregisterServerMsgCode
  };

  // Define message structure for each method
  struct SetDebugLevelMsg : Request, Reply {
    short level;
  
  } _setDebugLevelMsg;

  struct GetDebugLevelMsg : Request, Reply {
    short returnVal;
  
  } _getDebugLevelMsg;

  struct RequestCommandMsg : Request, Reply {
    short mtype;
    short timeType;
    short period;
  
  } _requestCommandMsg;

  struct PoinkerCommandMsg : Request, Reply {
    RemoteAgentIF::poinkCommand command;
  
  } _poinkerCommandMsg;

  struct ReregisterServerMsg : Request, Reply {
  
  } _reregisterServerMsg;

};

#endif

