新ModelBaseの仕様 - PastFantasy1640/jubeon GitHub Wiki

使い方の備忘録

クラスの立ち位置

publicで継承してクラスを作ってください。

コンストラクタ

コンストラクタでjsonファイル名を指定。ロードはしない

メンバ

public

virtual bool load(void);

ファイルからjsonを読み出す。オーバーライド可能だが、デフォルトでは、ファイルを開き、wlib::Jsonを作ってくれる。 trueで成功。失敗はprotectedメンバのjsonにisErrorやgetErrorで取得せよ

void release(void);

json資源をreleaseする。デストラクタでも呼ばれる。shared_ptr管理だから別に呼ばれなくても問題はないけど、

bool isLoaded(void) const;

ロード済みかどうか。このロードとは、jsonにデータが格納されているかどうかで、エラーが発生していてもtrueが帰る。エラーがあるかどうかは、isLoadedを読み出してtrueならjson.isError()を読み出せ。

std::string getFilename(void) const;

ファイル名を取得する。コンストラクタで指定したファイルネームを読み出す。

protected

std::unique_ptrwlib::Json json;

picojsonのラッパデータ。isLoadedを使うことで確保されているか確認できる。

virtual bool set(void);

デフォルトのload関数で、jsonの解析が成功した場合に呼び出される。ここで、継承クラスのメンバに代入する処理を書いておけばloadが呼ばれたときにメンバが更新される。オーバーライド必須。しなくてもいいがデフォルトは何も書かれていない。trueを返せば成功を意味する。

継承クラスの作り方

  1. コンストラクタを適切に設定してください
  2. set関数をオーバーライドしてください

これだけ。

⚠️ **GitHub.com Fallback** ⚠️