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 キャッシュコンテナーの値オブジェクトへの参照を解放します。 その値オブジェクトへの最後の参照の場合、コンテイナーはその値を立ち退かせることができます。 |