void SimManager::_get_options() { getInputInt(&_input, "print_reduced_conf_every", &_print_reduced_conf_every, 0); getInputInt(&_input, "print_energy_every", &_print_energy_every, 0); getInputInt(&_input, "restart_step_counter", &_restart_step_counter, 0); getInputLLInt(&_input, "steps", &_steps, 1); if(getInputInt(&_input, "seed", &_seed, 0) == KEY_NOT_FOUND) _seed = time(NULL); getInputString(&_input, "conf_file", _conf_file, 1); }
void SimManager::init() { srand48(_seed); srand(_seed); ifstream conf_input(_conf_file); if(conf_input.good() == false) _IO.die("Can't read configuration file '%s'", _conf_file); // here we handle the SIGTERM signal; signal (SIGTERM, gbl_terminate); signal (SIGABRT, gbl_terminate); signal (SIGINT, gbl_terminate); char time_scale[256]; getInputString(&_input, "time_scale", time_scale, 1); if(strcmp(time_scale, "linear") == 0) _time_scale = TS_LIN; else if(strcmp(time_scale, "log_lin") == 0) _time_scale = TS_LOG_LIN; else _IO.die("Time scale '%s' not supported", time_scale); char line[512]; conf_input.getline(line, 512); int res = sscanf(line, "t = %lld", &_start_step); if(res != 1) _IO.die("The first line of the configuration file is not correct, aborting"); if(_restart_step_counter != 0) _start_step = 0; // init time_scale_manager initTimeScale(&_time_scale_manager, _time_scale); int tmp; getInputInt(&_input, "print_conf_interval", &tmp, 1); setTSInterval(&_time_scale_manager, tmp); if(_time_scale == TS_LOG_LIN) { getInputInt(&_input, "print_conf_ppc", &tmp, 1); setTSPPC(&_time_scale_manager, tmp); } // end setTSInitialStep(&_time_scale_manager, _start_step); _IO.init(); _backend->init(conf_input); _max_steps = _start_step + _steps; }
void CMoodMgr::createSong(int type) { int fileSize=0, transfer, encryption, id, numDays, popularity; //arguement added char songName[128], albumName[128], artistName[128], date[128], webLink[128]; double duration, price; getInputString("Song Name: ", songName); getInputString("Album Name: ", albumName); getInputString("Artist Name: ", artistName); getInputInt("File Size: ", &fileSize); getInputInt("Transfer (1=Streamable, 2=Downloadable, 3=Both) : ", &transfer); getInputString("Date: ", date); getInputInt("Popularity (0=Lowest to 100=Highest) : ", &popularity); if (type == SONG_SECURE) { getInputDouble("Duration: ", &duration); getInputInt("Encryption (1=SECURE_1, 2=SECURE_2, 3=SECURE_3): ", &encryption); getInputInt("ID: ", &id); CSecureSongInfo secureSong; secureSong.setSongName(songName); secureSong.setAlbumName(albumName); secureSong.setArtistName(artistName); secureSong.setFileSize(fileSize); secureSong.setTransfer(transfer); secureSong.setDate(date); secureSong.setPopularity(popularity); //added line of code secureSong.setDuration(duration); secureSong.setEncryption(encryption); secureSong.setId(id); songList.add(&secureSong); } else if (type == SONG_PROMO) { getInputDouble("Price: ", &price); getInputString("WebLink: ", webLink); getInputInt("Promotion Length: ", &numDays); CPromoSongInfo promoSong; promoSong.setSongName(songName); promoSong.setAlbumName(albumName); promoSong.setArtistName(artistName); promoSong.setFileSize(fileSize); promoSong.setTransfer(transfer); promoSong.setDate(date); promoSong.setPopularity(popularity); promoSong.setPrice(price); promoSong.setWebLink(webLink); promoSong.setNumDays(numDays); songList.add(&promoSong); } cout << endl; }
void CMoodMgr::deleteSong() { int i; int length = songList.length(); if (length == 0) { displayMessage("The song list is empty."); return; } getInputInt("Enter song number you wish to delete: ", &i); if ((i < 1) || (i > length)) { // Note: first song is displayed as #1 displayMessage("You must enter a song number from 1 to ", true, length); return; } songList.remove(i-1); // adjustment, see above }
void CMoodMgr::editSong() { int i; int length = songList.length(); if (length == 0) { displayMessage("The song list is empty."); return; } getInputInt("Enter song number you wish to edit: ", &i); if ((i < 1) || (i > length)) { // Note: first song is displayed as #1 displayMessage("You must enter a song number from 1 to ", true, length); cout << endl; return; } i = i - 1; // adjustment, see above int fileSize=0, transfer, encryption, id, numDays, popularity; char songName[128], albumName[128], artistName[128], date[128], webLink[128]; double duration, price; CSongInfo *pSong; CSecureSongInfo *pSecure; CPromoSongInfo *pPromo; pSong = songList.get(i); int type = pSong->getType(); if (type == SONG_SECURE) { pSecure = (CSecureSongInfo *)songList.get(i); getInputString("Song Name: ", songName, true, pSecure->getSongName()); getInputString("Album Name: ", albumName, true, pSecure->getAlbumName()); getInputString("Artist Name: ", artistName, true, pSecure->getArtistName()); getInputInt("File Size: ", &fileSize, true, pSecure->getFileSize()); getInputInt("Transfer (1=Streamable, 2=Downloadable, 3=Both: ", &transfer, true, pSecure->getTransfer()); getInputString("Date: ", date, true, pSecure->getDate()); getInputInt("Popularity (0=Lowest to 100=Highest) : ", &popularity, true, pSecure->getPopularity()); getInputDouble("Duration: ", &duration, true, pSecure->getDuration()); getInputInt("Encryption (1=SECURE_1, 2=SECURE_2, 3=SECURE_3): ", &encryption, true, pSecure->getEncryption()); getInputInt("ID: ", &id, true, pSecure->getId()); pSecure->setSongName(songName); pSecure->setAlbumName(albumName); pSecure->setArtistName(artistName); pSecure->setFileSize(fileSize); pSecure->setTransfer(transfer); pSecure->setDate(date); pSecure->setPopularity(popularity); pSecure->setDuration(duration); pSecure->setEncryption(encryption); pSecure->setId(id); } else if (type == SONG_PROMO) { pPromo = (CPromoSongInfo *)songList.get(i); getInputString("Song Name: ", songName, true, pPromo->getSongName()); getInputString("Album Name: ", albumName, true, pPromo->getAlbumName()); getInputString("Artist Name: ", artistName, true, pPromo->getArtistName()); getInputInt("File Size: ", &fileSize, true, pPromo->getFileSize()); getInputInt("Transfer (1=Streamable, 2=Downloadable, 3=Both: ", &transfer, true, pPromo->getTransfer()); getInputString("Date: ", date, true, pPromo->getDate()); getInputInt("Popularity (0=Lowest to 100=Highest) : ", &popularity, true, pPromo->getPopularity()); getInputDouble("Price: ", &price, true, pPromo->getPrice()); getInputString("WebLink: ", webLink, true, pPromo->getWebLink()); getInputInt("Promotion Length: ", &numDays, true, pPromo->getNumDays()); pPromo->setSongName(songName); pPromo->setAlbumName(albumName); pPromo->setArtistName(artistName); pPromo->setFileSize(fileSize); pPromo->setTransfer(transfer); pPromo->setDate(date); pPromo->setPopularity(popularity); pPromo->setPrice(price); pPromo->setWebLink(webLink); pPromo->setNumDays(numDays); } cout << endl; }