/*
  Travis Gadberry
  Patrick Hesser
  Chris Ladewig

  ReportResults.cpp
  21Mar05
*/

#include "ReportResults.h"

using namespace std;

ReportResults::
ReportResults() {
  n = 0;
  increments = new int[1];
  time = new double[1];
  search = new bool[1];
  creation_inc = new int[1];
  creation_time = new double[1];
  increments[0] = 0;
  time[0] = 0.0;
  search[0] = false;
  creation_inc[0] = 0;
  creation_time[0] = 0.0;
}

ReportResults::
ReportResults(int i) {
  n = i;
  increments = new int[n];
  time = new double[n];
  search = new bool[n];
  creation_inc = new int[n];
  creation_time = new double[n];

  for(int k=0; k<n; k++) {
    increments[k] = 0;
    time[k] = 0.0;
    search[k] = false;
    creation_inc[k] = 0;
    creation_time[k] = 0.0;
  }
}

ReportResults::
~ReportResults() {
  delete [] increments;
  delete [] time;
  delete [] search;
  delete [] creation_inc;
  delete [] creation_time;
}

ReportResults&
ReportResults::
operator=(const ReportResults& o) {
  if(this == &o) return *this;

  delete [] increments;
  delete [] time;
  delete [] search;
  delete [] creation_inc;
  delete [] creation_time;

  n = o.n;
  increments = new int[n];
  time = new double[n];
  search = new bool[n];
  creation_inc = new int[n];
  creation_time = new double[n];

  for(int i=0; i<n; i++)
    increments[i] = o.increments[i];
  for(int i=0; i<n; i++)
    time[i] = o.time[i];
  for(int i=0; i<n; i++)
    search[i] = o.search[i];
  for(int i=0; i<n; i++)
    creation_inc[i] = o.creation_inc[i];
  for(int i=0; i<n; i++)
    creation_time[i] = o.creation_time[i];

  return *this;
}

void
ReportResults::
setTime(int n, double t) {
  time[n] = t;
}

void
ReportResults::
setIncrements(int n, int i) {
  increments[n] = i;
}

void
ReportResults::
setFound(int n, bool b) {
  search[n] = b;
}

void
ReportResults::
setCreationTime(int n, double t) {
  creation_time[n] = t;
}

void
ReportResults::
setCreationIncrements(int n, int i) {
  creation_inc[n] = i;
}

double
ReportResults::
getTime(int n) {
  return time[n];
}

int
ReportResults::
getIncrements(int n) {
  return increments[n];
}

bool
ReportResults::
getFound(int n) {
  return search[n];
}

double
ReportResults::
getCreationTime(int n) {
  return creation_time[n];
}

int
ReportResults::
getCreationIncrements(int n) {
  return creation_inc[n];
}
