00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
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
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
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;
00130
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
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