AM Daemon ライブラリリファレンス
|
不揮発メモリアクセス処理を提供するMonostateクラス。 [詳解]
#include <Backup.h>
公開メンバ関数 | |
bool | isAsync () const |
処理要求を非同期モードで行うか否かを取得する。 [詳解] | |
void | setAsync (bool async) |
処理要求を非同期モードで行うか否かを設定する。 [詳解] | |
bool | isBusy () const |
処理未完了の要求があるか否かを取得する。 [詳解] | |
RequestState | setupRecords (const BackupRecord records[], std::size_t count, const wchar_t *gameId=nullptr) |
バックアップレコード情報配列をセットアップするように要求する。 [詳解] | |
RequestState | setupRecords (const std::vector< BackupRecord > &records, const wchar_t *gameId=nullptr) |
バックアップレコード情報配列をセットアップするように要求する。 [詳解] | |
template<std::size_t Count> | |
RequestState | setupRecords (const BackupRecord(&records)[Count], const wchar_t *gameId=nullptr) |
バックアップレコード情報配列をセットアップするように要求する。 [詳解] | |
bool | isSetupSucceeded () const |
直近のセットアップ処理が成功したか否かを取得する。 [詳解] | |
std::size_t | getRecordCount () const |
現在の有効レコード数を取得する。 [詳解] | |
BackupRecordStatus | getRecordStatus (std::size_t recordIndex) const |
直近のセットアップにおけるバックアップレコードステータスを取得する。 [詳解] | |
BackupRecordStatus | getRecordStatusByAddress (const void *recordAddress) const |
直近のセットアップにおけるバックアップレコードステータスを取得する。 [詳解] | |
RequestState | saveRecord (std::size_t recordIndex) |
バックアップレコードデータを保存するように要求する。 [詳解] | |
RequestState | saveRecordByAddress (const void *recordAddress) |
バックアップレコードデータを保存するように要求する。 [詳解] | |
RequestState | saveAllRecords () |
すべてのバックアップレコードデータを保存するように要求する。 [詳解] | |
bool | executeSave () |
バックアップレコードデータの保存要求を即座に完了させる。 [詳解] | |
静的公開メンバ関数 | |
static std::size_t | getMaxRecordCount () |
登録可能な最大レコード数を取得する。 [詳解] | |
不揮発メモリアクセス処理を提供するMonostateクラス。
Core クラスのメンバ関数 Core::execute 呼び出しによって内容が更新される。
|
static |
登録可能な最大レコード数を取得する。
bool amdaemon::Backup::isAsync | ( | ) | const |
処理要求を非同期モードで行うか否かを取得する。
true | 非同期モードで行う場合。 |
false | 同期モードで行う場合。(既定値) |
void amdaemon::Backup::setAsync | ( | bool | async | ) |
処理要求を非同期モードで行うか否かを設定する。
[in] | async | 非同期モードで行うならば true 。同期モードで行うならば false 。 |
既定では同期モードになっている。
bool amdaemon::Backup::isBusy | ( | ) | const |
処理未完了の要求があるか否かを取得する。
true | 処理未完了の要求がある場合。 |
false | アイドル状態の場合。 |
初期状態では false を返す。
下記のメンバ関数が正常に完了すると true を返すようになる。
その後、 Core クラスのメンバ関数 Core::execute 呼び出し等によって 実際の処理が完了すると、再び false を返すようになる。
RequestState amdaemon::Backup::setupRecords | ( | const BackupRecord | records[], |
std::size_t | count, | ||
const wchar_t * | gameId = nullptr |
||
) |
バックアップレコード情報配列をセットアップするように要求する。
[in] | records | バックアップレコード情報配列。 |
[in] | count | records の有効要素数。 |
[in] | gameId | バックアップデータのゲームID。キーチップから取得させるなら nullptr 。 別ゲームIDのバックアップデータを取得したい場合は明示する必要がある。 |
Exception |
|
この関数はセットアップ処理の要求のみを行う。 実際の処理は、 Core クラスのメンバ関数 Core::execute 呼び出しによって行われる。
下記のいずれかを満たす場合、この関数は無効な要求状態値を返す。
無効な要求状態値が返ってきた場合、要求は発行されていない。 有効であるか否かは RequestState クラスのメンバ関数 RequestState::valid で判別できる。
要求が成功すると、即座にレコード情報が無効となり、下記のように動作する。
要求がDaemonプロセスによって正常に処理されることで有効になる。
この関数を1フレーム内で連続して複数回呼び出した場合、 その度に要求が上書きされ、最後に行った要求のみがDaemonプロセスへ送られる。
|
inline |
バックアップレコード情報配列をセットアップするように要求する。
[in] | records | バックアップレコード情報配列。 |
[in] | gameId | バックアップデータのゲームID。キーチップから取得させるなら nullptr 。 別ゲームIDのバックアップデータを取得したい場合は明示する必要がある。 |
|
inline |
バックアップレコード情報配列をセットアップするように要求する。
Count | 配列要素数。 |
[in] | records | バックアップレコード情報配列。 |
[in] | gameId | バックアップデータのゲームID。キーチップから取得させるなら nullptr 。 別ゲームIDのバックアップデータを取得したい場合は明示する必要がある。 |
bool amdaemon::Backup::isSetupSucceeded | ( | ) | const |
直近のセットアップ処理が成功したか否かを取得する。
true | 成功した場合。 |
false | 失敗したか、まだ完了していない場合。 |
個々のレコードのデータが壊れていたりする場合でもこの関数は true を返す。 個々のレコードの状態はメンバ関数 getRecordStatus で取得すること。
この関数が false を返すのは、デバイス容量に対してレコードサイズの指定が 大きすぎる等、レコード情報自体に不備がある場合のみである。
std::size_t amdaemon::Backup::getRecordCount | ( | ) | const |
現在の有効レコード数を取得する。
BackupRecordStatus amdaemon::Backup::getRecordStatus | ( | std::size_t | recordIndex | ) | const |
直近のセットアップにおけるバックアップレコードステータスを取得する。
[in] | recordIndex | バックアップレコードインデックス。 |
Exception |
|
例外フック関数によって例外スローが抑止された場合は BackupRecordStatus::InvalidCall を返す。
BackupRecordStatus amdaemon::Backup::getRecordStatusByAddress | ( | const void * | recordAddress | ) | const |
直近のセットアップにおけるバックアップレコードステータスを取得する。
[in] | recordAddress | バックアップレコードデータのアドレス。 |
Exception |
|
バックアップレコードデータのアドレスを指定して保存要求を行う。 アドレスとは、 BackupRecord 構造体の BackupRecord::address メンバに設定したものである。
内部でバックアップレコードデータが先頭から順に検索され、 該当レコードが見つかった後はメンバ関数 getRecordStatus と同等の処理を行う。
該当レコードが見つからなかった場合や複数見つかった場合は例外をスローする。 例外フック関数によって例外スローが抑止された場合は BackupRecordStatus::InvalidCall を返す。
RequestState amdaemon::Backup::saveRecord | ( | std::size_t | recordIndex | ) |
バックアップレコードデータを保存するように要求する。
[in] | recordIndex | バックアップレコードインデックス。 |
Exception |
|
この関数は保存処理の要求のみを行う。 実際の処理は、 Core クラスのメンバ関数 Core::execute 呼び出しか、 当クラスのメンバ関数 executeSave 呼び出しによって行われる。
下記のいずれかを満たす場合、この関数は無効な要求状態値を返す。
無効な要求状態値が返ってきた場合、要求は発行されていない。 有効であるか否かは RequestState クラスのメンバ関数 RequestState::valid で判別できる。
この関数を1フレーム内で連続して複数回呼び出した場合、 それらの要求は一度にまとめてDaemonプロセスへ送られる。
RequestState amdaemon::Backup::saveRecordByAddress | ( | const void * | recordAddress | ) |
バックアップレコードデータを保存するように要求する。
[in] | recordAddress | バックアップレコードデータのアドレス。 |
Exception |
|
バックアップレコードデータのアドレスを指定して保存要求を行う。 アドレスとは、 BackupRecord 構造体の BackupRecord::address メンバに設定したものである。
内部でバックアップレコードデータが先頭から順に検索され、 該当レコードが見つかった後はメンバ関数 saveRecord と同等の処理を行う。 該当レコードが複数見つかった場合はそれらすべてを対象とする。
該当レコードが見つからなかった場合は例外をスローする。 例外フック関数によって例外スローが抑止された場合は無効な要求状態値を返す。
RequestState amdaemon::Backup::saveAllRecords | ( | ) |
すべてのバックアップレコードデータを保存するように要求する。
Exception | セットアップが未完了である場合。 |
登録されている全バックアップレコードの保存要求を行う。
この関数は保存処理の要求のみを行う。 実際の処理は、 Core クラスのメンバ関数 Core::execute 呼び出しか、 当クラスのメンバ関数 executeSave 呼び出しによって行われる。
メンバ関数 setupRecords によるセットアップ要求が完了していない場合、 この関数は無効な要求状態値を返す。 無効な要求状態値が返ってきた場合、要求は発行されていない。 有効であるか否かは RequestState クラスのメンバ関数 RequestState::valid で判別できる。
この関数を1フレーム内で連続して複数回呼び出した場合、 2回目以降は何もせずに有効な要求状態値を返す。
bool amdaemon::Backup::executeSave | ( | ) |
バックアップレコードデータの保存要求を即座に完了させる。
true | 保存処理に成功した場合。 |
false | 保存処理に失敗したか、保存要求が行われていない場合。 |
メンバ関数 saveRecord 等によるバックアップレコードデータの保存要求は、 通常 Core クラスのメンバ関数 Core::execute が呼び出されるまで実施されない。
この関数を呼び出すと、その時点で未完了の保存要求を、 Core::execute の呼び出しを待たず即座に完了させる。
この関数は同期モード、非同期モードには依存しない。 どちらのモードであっても動作に違いはない。
未完了の保存要求が存在しない場合、この関数は何も行わずに false を返す。
Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。