Guave のLoading Cacheのように機能する C++ のキャッシュ ライブラリが必要です。
次の内容を含める必要があります。
- ノンブロッキング アクセス
- 時間ベースの立ち退き
- サイズベースのエビクション
STL、Boost を調べて検索しましたが、この機能を備えたものを見つけることができません。
POCOをチェックしてください。そのキャッシング フレームワークがニーズに合っていると思います。
ExpireLRUCache<int, string> cache(
1024, // cacheSize
600000 // expiration (10 minutes)
);
cache.add( 1, "Cached string 1" );
cache.add( 10, "Cached string 10" );
Sleep( 601000 );
Shared_ptr<string> pVal = cache.get( 10 );
assert( pVal.isNull() ); // the element has expired