Subversion Repositories spk

Rev

Rev 35 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#pragma once

#include <map>
#include "Utils/String.h"

namespace SPK {
class CTextDB
{
public:
        typedef std::map<std::string, std::string> TextList;
        typedef std::map<std::string, std::string>::iterator TextListItr;

private:
        int                      m_iLang;
        int                      m_iInPage;
        TextList        *m_pTexts;

public:
        CTextDB(void);
        virtual ~CTextDB(void);

        void parseTextFile(int iFromPage, int iToPage, const Utils::String &sFile, int iLang);
        Utils::String get(int iLang, int iPage, int iID) const;
        bool exists(int iLang, int iPage, int iID) const;
        Utils::String get(int iPage, int iID) const;
        bool exists(int iPage, int iID) const;

        void setLanguage(int iLang);

private:
        Utils::String _parseText(int iLang, const Utils::String &sText, const Utils::String &sReplace) const;
        Utils::String _parseText(int iLang, const Utils::String &sText) const;
        void _parsePage(int iLang, const Utils::String &sLine);
        void _parseFileLine(int iFromPage, int iToPage, int iLang, const Utils::String &sLine);
        void _addText(int iLang, int iID, const Utils::String &sText);
        Utils::String _mapID(int iLang, int iPage, int iID) const;
};

} //NAMESPACE