最終更新日時:
が更新

履歴 編集

Object Pool Implementation

依存性

Boost ヘッダー "pool.hpp"(pool を見よ)をインクルードしている。

公開インタフェースの拡張

ObjectPool 型のオブジェクトがシステムからメモリーを必要とするときはいつでも、それのテンプレートパラメーター UserAllocator がシステムへ要求を出す。 リクエストされる量はダブリングアルゴリズムによって決定される。 言い換えると、より多くのシステムメモリーが割り当てられるとき、要求される量は2倍になるということである。 ユーザーは以下に述べる拡張によってダブリングアルゴリズムを管理することができる。

追加のコンストラクタパラメータ

ユーザーは ObjectPool のコンストラクタに追加のパラメータを渡すことができる。 このパラメータは size_type 型で、そのオブジェクトがシステムメモリーを初めて必要とするときに要求するチャンクの数である。 デフォルト値は 32 である。 このパラメーターは 0 であってはならない。

next_sizeアクセサ関数

関数 size_type get_next_size() const;void set_next_size(size_type); のペアはユーザーに明示的な next_size の読み書きを許す。 この値はオブジェクトが次にシステムメモリーから割り当てを必要とするときに要求するチャンクの数である。 この値を 0 に設定してはならない。

Protected インタフェース

梗概

template <typename ElementType, typename UserAllocator = default_user_allocator_new_delete>
class object_pool: protected pool<UserAllocator>
{
... // public interface
};

Protected Derivation

ObjectPool は protected 導出を使って単純分離記憶域から導出されている。 これは Pool 実装の詳細 のすべてを、ObjectPool から導出されるすべてのクラスにも同じように開示している。

インタフェースの説明


Copyright (c) 2000, 2001 Stephen Cleary (shammah@voyager.net)

This file can be redistributed and/or modified under the terms found in copyright

This software and its documentation is provided "as is" without express or implied warranty, and with no claim as to its suitability for any purpose.