Log In | Get Help   
Home My Page Projects Code Snippets Project Openings Mareframe
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files
[mareframe] View of /trunk/gadget/tagptrvector.cc
[mareframe] / trunk / gadget / tagptrvector.cc Repository:
ViewVC logotype

View of /trunk/gadget/tagptrvector.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (download) (annotate)
Mon Feb 10 17:09:07 2014 UTC (10 years, 3 months ago) by agomez
File size: 1621 byte(s)
Initial version based on Gadget 2.2.00
#include "tagptrvector.h"
#include "gadget.h"

TagPtrVector::TagPtrVector(const TagPtrVector& initial) {
  size = initial.size;
  int i;
  if (size > 0) {
    v = new Tags*[size];
    for (i = 0; i < size; i++)
      v[i] = initial.v[i];
  } else
    v = 0;
}

TagPtrVector::~TagPtrVector() {
  if (v != 0) {
    delete[] v;
    v = 0;
  }
}

void TagPtrVector::resize(Tags* value) {
  int i;
  if (v == 0) {
    v = new Tags*[1];
  } else {
    Tags** vnew = new Tags*[size + 1];
    for (i = 0; i < size; i++)
      vnew[i] = v[i];
    delete[] v;
    v = vnew;
  }
  v[size] = value;
  size++;
}

void TagPtrVector::Delete(int pos) {
  int i;
  if (size > 1) {
    Tags** vnew = new Tags*[size - 1];
    for (i = 0; i < pos; i++)
      vnew[i] = v[i];
    for (i = pos; i < size - 1; i++)
      vnew[i] = v[i + 1];
    delete[] v;
    v = vnew;
    size--;
  } else {
    delete[] v;
    v = 0;
    size = 0;
  }
}

void TagPtrVector::updateTags(const TimeClass* const TimeInfo) {
  int year = TimeInfo->getYear();
  int step = TimeInfo->getStep();
  int i;
  for (i = 0; i < size; i++)
    if (v[i]->isWithinPeriod(year, step))
      v[i]->updateTags(year, step);
}

void TagPtrVector::deleteTags(const TimeClass* const TimeInfo) {
  int i;
  for (i = 0; i < size; i++) {
    if ((v[i]->getEndYear() == TimeInfo->getYear()) && (TimeInfo->getStep() == TimeInfo->getLastStep()))
      v[i]->deleteStockTags();

  }
}

void TagPtrVector::deleteAllTags() {
  int i;
  for (i = 0; i < size; i++)
    v[i]->deleteStockTags();
}

void TagPtrVector::deleteAll() {
  if (v != 0) {
    delete[] v;
    v = 0;
  }
  size = 0;
}

root@forge.cesga.es
ViewVC Help
Powered by ViewVC 1.0.0  

Powered By FusionForge