Changeset 158 for trunk


Ignore:
Timestamp:
25/09/08 20:44:25 (6 years ago)
Author:
guyru
Message:
  • Put all of configuration.h into namespace.
  • save method for Configuration
Location:
trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/MainFrame.cpp

    r157 r158  
    7979                wxRenameFile(home_path+wxT("/.OpenYahtzee"),home_path+wxT("/.openyahtzee"),false); 
    8080        } 
    81         Configuration config("/home/guy/.openyahtzee.new"); 
     81        configuration::Configuration config("/home/guy/.openyahtzee.new"); 
     82        config.save(); 
    8283        m_settingsdb = new SettingsDB(); //Get the settings database connection 
    8384        m_highscoredb = new HighScoreTableDB(); 
  • trunk/src/configuration.cpp

    r157 r158  
    1919 ***************************************************************************/ 
    2020 
     21#include <iostream> 
    2122#include "configuration.h" 
    22 #include <iostream> 
     23#include "../config.h" 
    2324 
    2425using namespace std; 
     26using namespace configuration; 
    2527 
    2628Configuration::Configuration(string file) 
     
    3133void Configuration::load(string file) 
    3234{ 
     35        m_file = file; 
     36 
    3337        cerr<<"loading file: "<<file<<endl; 
    3438        ifstream conf_file (file.c_str()); 
     
    3640                // file couldn't be opened, this is due to missing file or 
    3741                // permission error. 
     42                cerr<<"Error openning configuration file for reading: "<<m_file<<endl; 
    3843        } 
    3944         
     
    5964                } 
    6065        } 
     66        conf_file.close(); 
    6167} 
    6268 
     
    99105        string date,hour,name; 
    100106        HighscoreItem temp_item; 
    101         while(!file->eof()) { 
     107        while(file->good()) { 
    102108                temp_chr = file->get(); 
    103109                file->unget(); 
     
    109115                (*file)>>date; 
    110116                (*file)>>hour; 
     117                (*file).get(); // discard space before name 
    111118                getline(*file,name); 
    112119                temp_item.score = score; 
     
    115122                m_highscores.push_back(temp_item); 
    116123                cerr<<score<<" "<<name<<" "<<temp_item.date<<endl; 
     124 
     125                // The following two lines read one character forword and 
     126                // return it. This is done in order to raise the eofbit if 
     127                // we reached the eof (it is raised only after reading 
     128                // operation failed). 
     129                temp_chr = file->get(); 
     130                file->unget(); 
    117131        } 
    118132} 
     133 
     134void Configuration::save() 
     135{ 
     136        ofstream conf_file (m_file.c_str()); 
     137        if (!conf_file.is_open()) { 
     138                // file couldn't be opened, this is due to missing file or 
     139                // permission error. 
     140                cerr<<"Error openning configuration file for writing: "<<m_file<<endl; 
     141        } 
     142        conf_file<<"openyahtzee="<<VERSION<<endl; 
     143 
     144        conf_file<<"[settings]\n"; 
     145        saveSettings(&conf_file); 
     146        conf_file<<"[highscores]\n"; 
     147        saveHighscores(&conf_file); 
     148 
     149        conf_file.close(); 
     150} 
     151 
     152void Configuration::saveSettings(ofstream *file) 
     153{ 
     154        map<string,string>::iterator it; 
     155        for (it = m_settings.begin(); it!=m_settings.end(); it++) { 
     156                (*file)<<(*it).first<<"="<<(*it).second<<"\n"; 
     157        } 
     158} 
     159 
     160void Configuration::saveHighscores(ofstream *file) 
     161{ 
     162        HighscoreList::iterator it; 
     163        for (it = m_highscores.begin(); it!=m_highscores.end(); it++) { 
     164                (*file)<<(*it).score<<" "; 
     165                (*file)<<(*it).date<<" "; 
     166                (*file)<<(*it).name<<"\n"; 
     167        } 
     168} 
  • trunk/src/configuration.h

    r157 r158  
    2727#include <list> 
    2828 
     29namespace configuration { 
     30 
    2931struct HighscoreItem; 
    3032 
     
    3840         */ 
    3941        void load(std::string file); 
     42 
     43        void save(); 
    4044private: 
    4145        /** 
     
    4650        void parseSettings(std::ifstream *file); 
    4751        void parseHighscores(std::ifstream *file); 
     52 
     53        void saveSettings(std::ofstream *file); 
     54        void saveHighscores(std::ofstream *file); 
    4855         
    4956        std::map<std::string, std::string> m_settings; 
    5057        HighscoreList m_highscores; 
     58 
     59        std::string m_file; 
    5160}; 
    5261 
     
    5665        std::string date; 
    5766}; 
     67 
     68} 
    5869         
    5970 
Note: See TracChangeset for help on using the changeset viewer.