next up previous
 
// File: AbstFcry.cc

#include <AbstFcry.h>
#include <GeoObj.h>

AbstractFactory::AbstractFactory()
: Count(0)
{
  for(int i = 0; i < MAX; i++)
    GeoObjs[i] = NULL;
}

AbstractFactory::~AbstractFactory()
{
  for(int i = 0; i < Count; i++)
  {
    if(GeoObjs[i])
    {
      cerr << "Deleting a "
           << GeoObjs[i]->GetTypeString() << " object." << endl;
      delete GeoObjs[i];
    }
  }
}

void AbstractFactory::_SaveGeoObj(GeoObj* pg)
{
  if(Count < MAX)
    GeoObjs[Count++] = pg;
}

void AbstractFactory::CollectGeoObj(GeoObj*& pg)
{
  for(int i = 0; i < Count; i++)
    if((pg) && (GeoObjs[i] == pg))
    {
      delete GeoObjs[i];
      GeoObjs[i] = NULL;
      pg = NULL;
    }
}


next up previous