06/10/22
shared_resourceの問題点を改善し、パフォーマンス向上と効率よいメモリ資源の利用、更にコーディングの手間削減を実現する。
auto_resourceには以下の長所がある。
ただし、以下の短所もある。
LoadメソッドとSizeメソッドを実装したクラスTについて、auto_resource<T>が使える。
リソースの使用の際にはOpenしたのちGetResourceとすればT*型のリソースへのポインタが得られる。
リソースの使用を中止する。
明示的に呼び出す必要は無く、呼び出して参照カウントが0になってもすぐにはメモリ解放されないが、メモリ使用量が増大した場合には考慮される。
リソースへのポインタを得る。
リソースの使用を開始する。
既に読み込み済みのリストの中に一致するものがあれば読み込みは行わず、使いまわすためパフォーマンスが向上する。
リスト中のリソースが増えて限界メモリ使用量を超えた場合は古いリソースの解放を行うが、必ずしも精度はよくない。
限界メモリ使用量を設定する。
この結果はすぐには反映されない。
T型は、string型のファイル名を受け取り、読み込む関数を実装しなければならない。
T型は、そのクラスのサイズを取得するための関数を実装しなければならない。
auto_resource自体があまり厳密ではないため、こちらもあまり厳密ではなく概数値でかまわない。