handle_object クラス

概要

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