auto_resource

現在、開発凍結されています。ここに記載されている内容は、現在実現の目処はたっていません。

概要#

[[shared_resource]]の問題点を改善し、パフォーマンス向上と効率よいメモリ資源の利用、更にコーディングの手間削減を実現する。
auto_resourceには以下の長所がある。

ただし、以下の短所もある。

リソース全体の管理を行う[[CAutoResourceManager]]も参照のこと。

使用方法#

LoadメソッドとSizeメソッドを実装したクラスTについて、auto_resourceが使える。
リソースの使用の際にはOpenしたのちGetResourceとすればT*型のリソースへのポインタが得られる。

ダウンロード#

上が新しい。

auto_resource070802.lzh
auto_resource070612.lzh
auto_resource070326.lzh

履歴#

07/08/02auto_resourceのコピーと代入を実装
07/06/12相対パスを絶対パスに変換しないようにした&br;auto_resourceのCFile向け実装追加
07/03/26auto_resourceのCDIB32向け実装追加
07/02/05autoobject::TimeStampのinlineをはずした&br;読み込みをかねるコンストラクタを追加
06/10/25autoobjectのコピー禁止
06/10/24できたぜー

メンバ#

ここに記載されていない関数は使うべきではない。
または、ソースコードをよく読んで注意深く使うこと。

Close#

void Close()
リソースの使用を中止する。
明示的に呼び出す必要は無く、呼び出して参照カウントが0になってもすぐにはメモリ解放されないが、メモリ使用量が増大した場合には考慮される。

GetResource#

T* GetResource()
リソースへのポインタを得る。

Open#

void Open(const string& fileName)
リソースの使用を開始する。
既に読み込み済みのリストの中に一致するものがあれば読み込みは行わず、使いまわすためパフォーマンスが向上する。
リスト中のリソースが増えて限界メモリ使用量を超えた場合は古いリソースの解放を行うが、必ずしも精度はよくない。

リソース型が持つべき関数#

Load#

T型は、string型のファイル名を受け取り、読み込む関数を実装しなければならない。

Size#

T型は、そのクラスのサイズを取得するための関数を実装しなければならない。
auto_resource自体があまり厳密ではないため、こちらもあまり厳密ではなく概数値でかまわない。