61 while ( std::getline( istream, line ) )
63 unsigned int nCol = 0;
65 std::istringstream lineStream(line);
68 while( std::getline( lineStream, cell,
delim ) )
81 if ( ofile.is_open() )
93 for (
unsigned int nRow = 0; nRow <
m_nRows; nRow++ )
95 for (
unsigned int nCol = 0; nCol <
m_nCols; nCol++ )
97 ostream <<
trim(
m_oData[std::make_pair( nCol, nRow )] );
98 if ( (nCol+1) < m_nCols )
104 ostream << std::endl;
118 std::pair<unsigned int, unsigned int> p =
searchPair(apn);
121 if(col == 0 && row != 0)
133 void Stats::updateLoad(std::string apn, std::string api, std::string aen, std::string aei,
bool increment)
135 std::pair<unsigned int, unsigned int> p =
searchPair(apn);
139 if(col == 0 && row != 0)
141 EV <<
"Ehsanz: App found"<<std::endl;
145 EV <<
"Ehsanz: Incrementing "<<load<<std::endl;
152 EV <<
"Ehsanz: Erasing "<<std::endl;
157 EV <<
"Ehsanz: Decremented "<<load<<std::endl;
168 m_oData[std::make_pair(0,row)]=apn;
169 m_oData[std::make_pair(1,row)]=api;
170 m_oData[std::make_pair(2,row)]=aen;
171 m_oData[std::make_pair(3,row)]=aei;
172 m_oData[std::make_pair(4,row)]=
"1";
182 std::map<std::pair<unsigned int, unsigned int>, std::string>::iterator it =
m_oData.begin();
185 if(it->second == str && it->first.first==0)
191 std::pair<unsigned int, unsigned int> p = std::make_pair(0, 0);
201 for (
unsigned int nRow = row+1; nRow <
m_nRows; nRow++ )
203 for (
unsigned int nCol = 0; nCol <
m_nCols; nCol++ )
205 m_oData[std::make_pair( nCol, nRow-1)] =
m_oData[std::make_pair(nCol, nRow)];
209 for (
unsigned int i=0; i<
m_nCols; i++)
211 m_oData.erase(std::make_pair(i, m_nRows-1));
220 std::map<std::pair<unsigned int, unsigned int>, std::string>::iterator it;
226 rows = it->first.second;
232 std::stringstream stm;
239 return atoi(str.c_str());
244 if(!allApps.compare(
"AppErr"))
246 std::istringstream lineStream(allApps);
247 std::string app, availableApp = dstApp;
254 while( std::getline( lineStream, app,
',' ) )
257 if (!srcApp.compare(app))
266 EV <<
"Ehsanz: Selection of App: " << app <<
"Load:" << appLoad;
267 if(minLoad > appLoad)
274 EV <<
" Min load:" << minLoad <<
" App:"<< availableApp<<std::endl;
void rowErase(unsigned int row)
std::string getBestApp(std::string srcApp, std::string dstApp, std::string allApps)
int toInt(std::string str)
std::string & trim(std::string &s)
std::map< std::pair< unsigned int, unsigned int >, std::string > m_oData
void open_now(std::istream &istream, char delim)
void save_now(std::ostream &ostream, char delim)
int getLoad(std::string apn)
void updateLoad(std::string apn, std::string api, std::string aen, std::string aei, bool increment)
std::string toString(int i)
std::pair< unsigned int, unsigned int > searchPair(std::string str)