#include "SwitchDm.h"

SwitchDm::SwitchDm(const char *dmPrefix, MBool showCurrent)
{
  char prefix[MaxDmNameLen];
  
  strcpy(prefix, dmPrefix);
    
  if (prefix[strlen(prefix)-1] != '.')
    strcat(prefix, ".");

  char itemName[MaxDmNameLen];
  char errorBuf[errorMsgSize];
  
  strcpy(itemName, prefix);
  strcat(itemName, SWITCH_REQUEST);
  request = new DmEnumObject(itemName);
  if (request->error())
  {
    request->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  }

  strcpy(itemName, prefix);
  strcat(itemName, SWITCH_STATUS);
  status = new DmEnumObject(itemName);
  if (status->error())
  {
    status->errorMsg(errorBuf);
    setError(errorBuf);
    return;
  }

  if (showCurrent)
  {
    strcpy(itemName, prefix);
    strcat(itemName, SWITCH_CURRENT);
  
    current = new DmInt16Object(itemName);
    if (current->error())
    {
      current->errorMsg(errorBuf);
      setError(errorBuf);
      return;
    }
  }
  else
    current = NULL;
}


SwitchDm::~SwitchDm()
{
  delete request;
  delete status;
  delete current;
}

