/////////////////////////////////////////////////////////////////////////////////
//
// PURPOSE:  SysDataProcess Class. Log file for resource usage by process process.
// AUTHOR:   Henthorn
// DATE:     01/19/11
// COMMENTS: 
//
////////////////////////////////////////////////////////////////////////////////
//

#ifndef SYSDATAPROCESS_H
#define SYSDATAPROCESS_H

#include "sysmon.h"

#define SysDataProcessName "SysDataProcess"

#include "DataLogWriter.h"
#include "ShortData.h"
#include "TimeTag.h"

class SysData;

class SysDataProcess : public DataLogWriter {

public:

  ///////////////////////////////////////////////////////////////////
  // Constructor
  // [input] fileFormat: Specifies either DataLog::AsciiFormat or 
  //         DataLog::BinaryFormat.
  SysDataProcess(SysData *sysdata, 
		 DataLog::FileFormat fileFormat);

  ~SysDataProcess();

  void addProcess(const char* name);
  int num_processes() {return _np;}

protected:
  SysData *_sysdata;
  ShortData *_cpudata[50];
  ShortData *_memdata[50];

  char itemName[100];

  unsigned int _np;

  ///////////////////////////////////////////////////////////////////
  // Set values in record array elements. This virtual method is called
  // by DataLogWriter::write()
  virtual void setFields();
};
  
#endif
