Main Page   Class Hierarchy   Data Structures   File List   Data Fields  

stockmarketvector.cpp

00001 /***************************************************************************
00002                           stockmarketvector.cpp  -  description
00003                              -------------------
00004     begin                : Fri Jan 14 2003
00005     copyright            : (C) 2002 by Michael Otto
00006     email                : Michael.Otto@saskathex.de
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017     
00018 #include "stockmarketvector.h"
00019 #include "stockmarket.h"
00020 #include <functional>
00021 #include <algorithm>
00022  
00023  
00027 StockMarketVector::StockMarketVector() {
00028   stockMarkets.clear();
00029 }
00030  
00034 StockMarketVector::~StockMarketVector() {
00035   // deleting every element
00036   for (int i = 0; i < stockMarkets.size(); i++) {
00037     StockMarket * sm = stockMarkets[i];
00038     delete sm;
00039   }
00040   stockMarkets.clear();
00041 }
00042 
00046 void StockMarketVector::addStockMarket(StockMarket *stockMarket) {
00047   // adds element to start of list
00048 #ifdef DEBUG
00049   cout << "adding stockmarket: " << stockMarket->getMarketName() << " to Vector" << endl;
00050 #endif
00051   stockMarkets.push_back(stockMarket);
00052   notify();
00053   return;
00054 }
00055 
00060 bool StockMarketVector::removeStockMarket(StockMarket *stockMarketRemove) {
00061 #ifdef DEBUG
00062   cout << "removing stockmarket with name " << stockMarketRemove->getMarketName() << endl;
00063 #endif
00064   deque <StockMarket*>::iterator iter;
00065   iter = find(stockMarkets.begin(), stockMarkets.end(), stockMarketRemove);
00066   if (iter != stockMarkets.end() ) {
00067   #ifdef DEBUG
00068     cout << " StockMarket was found!" << endl;
00069   #endif
00070     stockMarkets.erase(iter);
00071     notify();
00072     delete stockMarketRemove;
00073     return true;
00074   }
00075   else {
00076     return false;
00077   }
00078 }
00079 
00080 
00084 int StockMarketVector::getNumberOfStockMarkets() const {
00085   return stockMarkets.size();
00086 }
00087 
00092 StockMarket *StockMarketVector::getStockMarket(int number) const {
00093   return stockMarkets[number];
00094 }
00095 
00099 bool StockMarketVector::getLastSaveYesterday() const {
00100   return lastSaveYesterday;
00101 }
00102 
00106 void StockMarketVector::setLastSaveYesterday(bool lastSaveYesterday) {
00107   StockMarketVector::lastSaveYesterday = lastSaveYesterday;
00108 }
00109 
00110 
00114 void StockMarketVector::createInitialMarkets() {
00115   this->addStockMarket(new StockMarket("Market One"));
00116   this->addStockMarket(new StockMarket("Market Two"));
00117   this->addStockMarket(new StockMarket("Market Three"));
00118 }
00119 
00125 void StockMarketVector::changeStockMarketPosition(StockMarket * stockMarket, int newPosition) {
00126 #ifdef DEBUG
00127   cout << "Changing position of " << stockMarket->getMarketName() << " to " << newPosition << endl;
00128 #endif
00129   int position = newPosition - 2; // ALL == 1 ...
00130   // removing the StockMarket
00131   {
00132     deque <StockMarket*>::iterator iter;
00133     iter = find(stockMarkets.begin(), stockMarkets.end(), stockMarket);
00134     if (iter != stockMarkets.end() ) {
00135     #ifdef DEBUG
00136       cout << " StockMarket was found!" << endl;
00137     #endif
00138       stockMarkets.erase(iter);
00139     }
00140   }
00141   // inserting the StockMarket
00142   if (position != stockMarkets.size()) {
00143     StockMarket * last = stockMarkets[position];
00144     stockMarkets[position] = stockMarket;
00145     for (int i = position+1; i < stockMarkets.size(); i++) {
00146       StockMarket * help = stockMarkets[i];
00147       stockMarkets[i] = last;
00148       last = help;
00149     }
00150     stockMarkets.push_back(last);
00151   }
00152   else {
00153     stockMarkets.push_back(stockMarket);
00154   }
00155   notify();
00156 }  
00157 
00158 

Generated on Tue May 27 21:24:02 2003 for gstockcalc by doxygen1.3-rc3