mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
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
79 lines
2.6 KiB
C++
79 lines
2.6 KiB
C++
#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_
|