Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

ConfigurationFile.h

Go to the documentation of this file.
00001 //------------------------------------------------------------------------------
00002 // Lamp : Open source game middleware
00003 // Copyright (C) 2004  Junpei Ohtani ( Email : junpee@users.sourceforge.jp )
00004 //
00005 // This library is free software; you can redistribute it and/or
00006 // modify it under the terms of the GNU Lesser General Public
00007 // License as published by the Free Software Foundation; either
00008 // version 2.1 of the License, or (at your option) any later version.
00009 //
00010 // This library is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 // Lesser General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU Lesser General Public
00016 // License along with this library; if not, write to the Free Software
00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 //------------------------------------------------------------------------------
00019 
00020 /** @file
00021  * コンフィグレーションファイルヘッダ
00022  * @author Junpee
00023  */
00024 
00025 #ifndef CONFIGURATION_FILE_H_
00026 #define CONFIGURATION_FILE_H_
00027 
00028 #include <Core/Container/HashMap.h>
00029 
00030 namespace Lamp{
00031 
00032 //------------------------------------------------------------------------------
00033 /**
00034  * コンフィグレーションファイル
00035  */
00036 class ConfigurationFile{
00037 public:
00038     /**
00039      * コンストラクタ
00040      * @param fileName ロードするコンフィグファイル名
00041      */
00042     explicit ConfigurationFile(const String& fileName);
00043 
00044     /**
00045      * デストラクタ
00046      */
00047     virtual ~ConfigurationFile();
00048 
00049     /**
00050      * データ数の取得
00051      */
00052     virtual int getCount() const{ return database_.getCount(); }
00053 
00054     /**
00055      * charデータの取得
00056      * @param key 取得するデータのキー
00057      * @param value [out] char化された値が代入されます
00058      * @return trueならデータの取得に成功
00059      */
00060     virtual bool getChar(const String& key, char* value) const;
00061 
00062     /**
00063      * u_charデータの取得
00064      * @param key 取得するデータのキー
00065      * @param value [out] u_char化された値が代入されます
00066      * @return trueならデータの取得に成功
00067      */
00068     virtual bool getUChar(const String& key, u_char* value) const;
00069 
00070     /**
00071      * shortデータの取得
00072      * @param key 取得するデータのキー
00073      * @param value [out] short化された値が代入されます
00074      * @return trueならデータの取得に成功
00075      */
00076     virtual bool getShort(const String& key, short* value) const;
00077 
00078     /**
00079      * u_shortデータの取得
00080      * @param key 取得するデータのキー
00081      * @param value [out] u_short化された値が代入されます
00082      * @return trueならデータの取得に成功
00083      */
00084     virtual bool getUShort(const String& key, u_short* value) const;
00085 
00086     /**
00087      * intデータの取得
00088      * @param key 取得するデータのキー
00089      * @param value [out] int化された値が代入されます
00090      * @return trueならデータの取得に成功
00091      */
00092     virtual bool getInt(const String& key, int* value) const;
00093 
00094     /**
00095      * u_intデータの取得
00096      * @param key 取得するデータのキー
00097      * @param value [out] u_int化された値が代入されます
00098      * @return trueならデータの取得に成功
00099      */
00100     virtual bool getUInt(const String& key, u_int* value) const;
00101 
00102     /**
00103      * floatデータの取得
00104      * @param key 取得するデータのキー
00105      * @param value [out] float化された値が代入されます
00106      * @return trueならデータの取得に成功
00107      */
00108     virtual bool getFloat(const String& key, float* value) const;
00109 
00110     /**
00111      * doubleデータの取得
00112      * @param key 取得するデータのキー
00113      * @param value [out] double化された値が代入されます
00114      * @return trueならデータの取得に成功
00115      */
00116     virtual bool getDouble(const String& key, double* value) const;
00117 
00118     /**
00119      * Stringデータの取得
00120      * @param key 取得するデータのキー
00121      * @param value [out] String値が代入されます
00122      * @return trueならデータの取得に成功
00123      */
00124     virtual bool getString(const String& key, String* value) const;
00125 
00126 private:
00127     /**
00128      * ロード
00129      * @param fileName ロードするコンフィグファイル名
00130      */
00131     virtual void load(const String& fileName);
00132 
00133     /**
00134      * データの追加
00135      * @param key 追加するデータのキー
00136      * @param value 追加するデータ
00137      */
00138     virtual void add(const String& key, const String& value);
00139 
00140     // コピーコンストラクタの隠蔽
00141     ConfigurationFile(const ConfigurationFile& copy);
00142 
00143     // 代入コピーの隠蔽
00144     void operator =(const ConfigurationFile& copy);
00145 
00146     // ファイル名
00147     String fileName_;
00148     // データベース
00149     HashMap<String, String> database_;
00150 };
00151 
00152 //------------------------------------------------------------------------------
00153 } // End of namespace Lamp
00154 #endif // End of CONFIGURATION_FILE_H_
00155 //------------------------------------------------------------------------------

Generated on Wed Mar 16 10:29:29 2005 for Lamp by doxygen 1.3.2