/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : TempControl_SK.h                                              */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
/*
NOTE: This file is automatically generated.
DO NOT MODIFY.
*/

#ifndef __TempControl_SK_H
#define __TempControl_SK_H

#include "TaskServer.h"
#include "TempControl.h"

class TempControl_SK : public TaskServer {

  public:

  // Constructor for server with default name
  TempControl_SK();

  // Constructor for server with specific name
  TempControl_SK(const char *serverName);

  ~TempControl_SK();
  
  protected:

  // These methods must be defined in subclass
  virtual void eatMy(TempControl::Shorts shorts) = 0;
  virtual short setpoint() = 0;
  virtual short foo(float junk) = 0;
  virtual short foo(float junk, short blah, float *junkOut) = 0;
  virtual long actual(unsigned long index, TempControl::MData *mdata, TempControl::TempData *tdata) = 0;
  virtual void func2(float value, short *flag) = 0;
  
  // Declare callbacks corresponding to each method
  Boolean eatMyCallback(Request *request, int nReqBytes,
                 Reply **reply, int *nReplyBytes);

  Boolean setpointCallback(Request *request, int nReqBytes,
                 Reply **reply, int *nReplyBytes);

  Boolean fooCallback(Request *request, int nReqBytes,
                 Reply **reply, int *nReplyBytes);

  Boolean foo01Callback(Request *request, int nReqBytes,
                 Reply **reply, int *nReplyBytes);

  Boolean actualCallback(Request *request, int nReqBytes,
                 Reply **reply, int *nReplyBytes);

  Boolean func2Callback(Request *request, int nReqBytes,
                 Reply **reply, int *nReplyBytes);

  
  // Message structure pointer for each method
  TempControl::EatMyMsg *_eatMyMsg;
  TempControl::SetpointMsg *_setpointMsg;
  TempControl::FooMsg *_fooMsg;
  TempControl::Foo01Msg *_foo01Msg;
  TempControl::ActualMsg *_actualMsg;
  TempControl::Func2Msg *_func2Msg;
  
  // Determine max bytes required for message buffer
  virtual size_t maxRequestBytes();

  // Allocate buffer for messages, set pointers, etc
  virtual void allocateBuffers();

  private:

  // Initializer method called by constructors
  int init();

};

#endif

