• Main Page
  • Modules
  • Classes
  • Files
  • File List

D:/Projekt/ECF_trunk/ECF/Deme.cpp

00001 #include "ECF_base.h"
00002 #include<sstream>
00003 
00004 
00005 bool Deme::initialize(StateP state)
00006 {
00007     for(uint i = 0; i < nIndividuals_; i++) {
00008         this->push_back(static_cast<IndividualP> (new Individual));
00009         this->back()->index = (unsigned int) this->size() - 1;
00010         this->back()->initialize(state);
00011     }
00012 
00013     hof_ = static_cast<HallOfFameP> (new HallOfFame);
00014     hof_->initialize(state);
00015 
00016     stats_ = static_cast<StatCalcP> (new StatCalc);
00017     stats_->initialize(state);
00018 
00019     return true;
00020 }
00021 
00022 
00023 bool Deme::replace(unsigned int index, IndividualP newInd)
00024 {
00025     newInd->index = index;
00026     (*this)[index] = newInd;
00027     return true;
00028 }
00029 
00030 
00031 void Deme::write(XMLNode &xDeme)
00032 {
00033     xDeme = XMLNode::createXMLTopNode("Deme");
00034     std::stringstream value;
00035     value << nIndividuals_;
00036     xDeme.addAttribute("size", value.str().c_str());
00037 
00038     XMLNode xHoF;
00039     hof_->write(xHoF);
00040     xDeme.addChild(xHoF);
00041 
00042     XMLNode xIndividual;
00043     for(uint i = 0; i < this->size(); i++) {
00044         this->at(i)->write(xIndividual);
00045         xDeme.addChild(xIndividual);
00046     }
00047 }
00048 
00049 
00054 void Deme::read(XMLNode &xDeme)
00055 {
00056     XMLNode xHof = xDeme.getChildNode(0);
00057     this->hof_->read(xHof);
00058 
00059     for(uint i = 0; i < this->size(); i++) {
00060         XMLNode xInd = xDeme.getChildNode(i + 1);
00061         this->at(i)->read(xInd);
00062     }
00063 }

Generated on Tue Nov 4 2014 13:04:30 for ECF by  doxygen 1.7.1