#ifndef __TempControl_SK_H
#define __TempControl_SK_H

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

class TempControl_SK : public TaskServer {

  /////////////////////////////////////////////
  public:

  TempControl_SK();
  ~TempControl_SK();
  
  /////////////////////////////////////////////
  protected:

  virtual short setpoint() = 0;
  virtual short foo(float junk) = 0;
  virtual long actual(unsigned long index, TempControl::MData *mdata, TempControl::TempData *tdata) = 0;
  virtual void func2(float value, short *flag) = 0;
  
  Boolean setpointCallback(Request *request, int nReqBytes,
                 Reply **reply, int *nReplyBytes);

  Boolean fooCallback(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);

  
  TempControl::SetpointMsg *_setpointMsg;
  TempControl::FooMsg *_fooMsg;
  TempControl::ActualMsg *_actualMsg;
  TempControl::Func2Msg *_func2Msg;
  
  virtual size_t maxRequestBytes();

  virtual void allocateBuffers();

};

#endif

