最終更新日時:
が更新

履歴 編集

Singleton Pool の実装

依存性

Boostヘッダー pool.hpp (poolを見よ)、detail/singleton.hpp (singletonを見よ)、detail/mutex.hpp (mutexを見よ)、detail/guard.hpp (guardを見よ)をインクルードしている。

梗概

template <typename Tag,
    unsigned RequestedSize,
    typename UserAllocator = default_user_allocator_new_delete,
    typename Mutex = details::pool::default_mutex,
    unsigned NextSize = 32>
class singleton_pool
{
... // 公開インタフェース

public: // 公開インタフェースの拡張
    typedef Mutex mutex;
    static const unsigned next_size = NextSize;
};

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

追加テンプレートパラメータ

Mutex

このクラスはmutex型のもので基底であるPoolへの同時アクセスを保護するために使用する。 これは開示されているので、ユーザーはシングルトンプールを通常の様(つまり同期して)に記述することもできるし、効率のために、シングルトンプールを(details::pool::null_mutex を指定して)同期制御無しにすることもできる。

NextSize

基底となる Pool が生成されるとき、このパラメーターの値が渡される。 より詳しい情報は pool の公開インタフェースの拡張を見よ。

追加メンバー

typedef である mutex と静的定数値 next_size はテンプレートパラメータの値 MutexNextSize をそれぞれにクラス外に見せる。

将来の方向性

Boost multithreading library が完成すれば、Mutex パラメーターは同等の柔軟性を提供する、そのライブラリーの何かで置き換えられ、実装の詳細からインタフェース仕様へ移動されることになるだろう。

インタフェースの説明


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.