////////////////////////////////////////////////////////////////////////////////
//
// PURPOSE:  SysDataProcess Class.
// AUTHOR:   Henthorn
// DATE:     01/19/11
// COMMENTS: 
//
////////////////////////////////////////////////////////////////////////////////
//

#include "Syslog.h"
#include "SysDataProcess.h"
#include "SysData.h"

// Standard log file Constructor
SysDataProcess::SysDataProcess(SysData *sysdata, 
			       DataLog::FileFormat fileFormat)
  : DataLogWriter(SysDataProcessName, fileFormat, AutoTimeStamp), _sysdata(sysdata), _np(0)
{
  setMnemonic("process.data");

}

void SysDataProcess::addProcess(const char *name)
{
  sprintf(itemName, "process.%s_cpu", name);
  addField((_cpudata[_np] = new ShortData(itemName)));

  sprintf(itemName, "process.%s_mem", name);
  addField((_memdata[_np] = new ShortData(itemName)));
  _np++;
}

SysDataProcess::~SysDataProcess()
{
  for (int i =0; i < _np; i++) {
    delete _cpudata[i];
    delete _memdata[i];
  }
}

void SysDataProcess::setFields()
{
  for (int i =0; i < _np; i++) {
    _cpudata[i]->setValue(_sysdata->_process_cpu[i]);
    _memdata[i]->setValue(_sysdata->_process_mem[i]);
  }
}

