ctr_Repair/branches/2-1-1/sources/common/configLoader.h
N2614 fa59af905c 2ndNUP修正版2-1-1
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@548 385bec56-5757-e545-9c3a-d8741f4650f1
2011-12-21 08:21:20 +00:00

79 lines
2.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef NN_CONFIG_LOADER_H_
#define NN_CONFIG_LOADER_H_
namespace common
{
using namespace nn;
using namespace nn::fs;
using namespace std;
class ConfigFileLoader
{
private:
static const int PARAM_VALUE_MAX_STRING_LENGTH = 128;
static const int PARAM_MAX_NUM = 64;
char m_ReadCharBuffer[PARAM_VALUE_MAX_STRING_LENGTH];
wchar_t *m_ParamName[PARAM_MAX_NUM];
wchar_t *m_ParamValue[PARAM_MAX_NUM];
wchar_t *m_Buffer;
s32 m_UsedBufferSize;
s32 m_ParamNum;
public:
ConfigFileLoader() : m_Buffer(0), m_UsedBufferSize(0), m_ParamNum(0)
{
}
/*
@brief ConfigFileLoader を初期化します.
使用するファイルが存在するアーカイブは,あらかじめマウントしておく必要があります.
読み込みに使用するバッファを確保し,引数 buffer に与える必要があります.
Finalize を呼ぶまでこのバッファは開放しないでください.
読み込ませることのできるフォーマット
・エンコーディングUTF-16
・バイトオーダ  :リトルエンディアン
・改行記号    :不問
半角コロンを含む行のみパラメータ記述行として読み込み,含まない行は無視します.
半角コロンより前の文字はすべてパラメータ名として取得し,
半角コロンより後の文字はすべてパラメータの値として取得します.
ParameterName : ParameterValue;
と記述すると
パラメータ名は L"ParameterName "
パラメータ値は L" ParameterValue;"
となります.
@param[in] fileName 設定ファイル名
@param[in] buffer ファイル読み込み用のバッファ
@param[in] bufferSize 上記 buffer の大きさ
@return 結果を返します.
*/
Result Initialize(const wchar_t* fileName, void* buffer, const size_t bufferSize);
void Finalize();
// スレッドセーフです.
const wchar_t *ReadAsWChar(const wchar_t *paramName);
// スレッドセーフではありません.
const char *ReadAsChar(const wchar_t *paramName);
// スレッドセーフです.
int ReadAsInteger(const wchar_t *paramName);
private:
Result ParseData();
s32 SearchParamName(const wchar_t *paramName);
};
}
#endif // NN_CONFIG_LOADER_H_