concurrent_lru_cache の値への読み取り/書き込みアクセスを提供するクラス。
template <typename key_type, typename value_type, typename value_functor_type = value_type (*)(key_type) > class concurrent_lru_cache::handle_object {
#include "tbb/concurrent_lru_cache.h"
handle_object は、キャッシュコンテナーによって返される (スマートハンドル) プロキシー・オブジェクトで、値への参照を取得できます。
この型の有効なオブジェクトは、使用中にコンテナーの値が削除されないようにします。
handle_object にはコピー・セマンティクスはありません。代わりに、所有権が譲渡されます。つまり、std::auto_ptr のセマンティクスや C++11 の移動セマンティクスに似ています。
namespace tbb { template <typename key_type, typename value_type, typename value_functor_type = value_type (*)(key_type) > class concurrent_lru_cache::handle_object { public: handle_object(handle_move_t m); operator handle_move_t(); value_type& value(); ~handle_object(); private: void operator=(handle_object&); handle_object(handle_object &); }; }; handle_move_t move(handle_object& h); }
メンバー | 説明 |
---|---|
handle_object(handle_move_t m) | (handle_move_t オブジェクトへの暗黙的変換により) ポインターまたは別の handle_object から handle_object オブジェクトを構築します。 handle_object オブジェクトは LRU キャッシュの値オブジェクトへの参照を所有するため、別の handle_object から新しい handle_object が構築されると、以前の所有者は参照の所有権を解放します (つまり、どの値も参照しなくなります)。 |
operator handle_move_t() | このメソッドは直接呼び出すべきではありません。代わりに、move 独立関数を使用してください。 効果: handle_object オブジェクトから handle_move_t 一時オブジェクトに参照の所有権を譲渡します。 戻り値: LRU キャッシュの同じ値オブジェクトを指している handle_move_t オブジェクト。 |
value_type& value() | LRU キャッシュコンテナーの値オブジェクトへの参照を返します。 戻り値: LRU キャッシュコンテナー内の value_type への参照。 |
~handle_object() | LRU キャッシュコンテナーの値オブジェクトへの参照を解放します。その値オブジェクトへの最後の参照の場合、コンテナーはその値を立ち退かせることができます。 |