#include "domain.h"

Domain::Domain()
{
  this->_id = 0;
}

Domain::~Domain()
{
}

void  Domain::setId(const unsigned int id)
{
  this->_id = id;
}

void  Domain::setName(const std::string &name)
{
  this->_name = name;
}

virDomainInfoPtr  Domain::getDomainInfo()
{
  return (&(this->_domain));
}

v8::Local<v8::Object> Domain::toObject() const
{
  v8::Local<v8::Object> obj = Nan::New<v8::Object>();

  if (this->_id != 0)
    obj->Set(Nan::New("id").ToLocalChecked(), Nan::New<v8::Number>(this->_id));
  obj->Set(Nan::New("name").ToLocalChecked(), Nan::New(this->_name).ToLocalChecked());
  obj->Set(Nan::New("state").ToLocalChecked(), Nan::New<v8::Number>(this->_domain.state));
  obj->Set(Nan::New("maxMem").ToLocalChecked(), Nan::New<v8::Number>(this->_domain.maxMem));
  obj->Set(Nan::New("memory").ToLocalChecked(), Nan::New<v8::Number>(this->_domain.memory));
  obj->Set(Nan::New("nrVirtCpu").ToLocalChecked(), Nan::New<v8::Number>(this->_domain.nrVirtCpu));
  obj->Set(Nan::New("cpuTime").ToLocalChecked(), Nan::New<v8::Number>(this->_domain.cpuTime));
  return (obj);
}