Шаблон класса Cntm::Register< ValueT, StoreT >
[Cntm.Containers]

Граф наследования:Cntm::Register< ValueT, StoreT >:

Cntm::NoRefPtrRegister< T >

Полный список членов класса


Подробное описание

template<typename ValueT, typename StoreT = ValueT>
class Cntm::Register< ValueT, StoreT >

Контейнерный класс перечня значений, хранящихся во внешних источниках.

Данный перечень содержит только ссылки на зарегистрированные в нем значения.

Для хранения значения используется класс эл-та внешнего перечня - Cntm::Register::Item (см. этот класс). При записи в него значения одновременно указывается и перечень, в котором будет зарегистрировано значение. При присвоении эл-ту перечня нового значения ссылка на старое значение удаляется из перечня, в котором оно было зарегистрировано, и происходит регистрация нового значения. При уничтожении эл-та производится удаление ссылки на знвчение из перечня.

Просмотр значений перечня осуществляется через перечислители (см. Cntm::Register::Enumerator). Для получения перечислителя используется метод GetEnumerator().

Класс перечня является шаблонным классом с 2 параметрами. Параметр ValueT определяет тип значений, с которыми будет осуществляться работа (которые будут добавляться и перечисляться). Параметр StoreT определяет тип, который будет использоваться при хранении значений в контейнере. При добавлении значение типа ValueT будет преобразовано к значению StoreT, в котором будет храниться, при перечислении наоборот. Если второй параметр не задан, то StoreT = ValueT. Должна обеспечиваться взаимная конвертация типов StoreT и ValueT. Если это условие не будет выполнено, то при компиляции шаблона Register будет выдано сообщение об ошибке. Типы StoreT и ValueT должны иметь конструкторы и операторы копирования. Тип ValueT доступен через Cntm::Register::Type.

Класс перечня обеспечивает многопоточность (объекты перечислителей составляют исключение). Т.е. операции получения перечислителей, работа с эл-тами и разными перечислителями синхронизированы, операции одного перечислителя - нет.

Автор:
Овсеевич Р.

См. определение в файле Register.h строка 39


Открытые типы

typedef ValueT Type

Открытые члены

bool IsEmpty () const
 Возвращает true, если перечень пуст, в противном случае - false.
Enumerator GetEnumerator (bool DynamicExpanded=true) const
 Получить объект перечислителя для доступа к эл-там.

Друзья

class Enumerator
class Item

Классы

class  Enumerator
 Класс для перечисления значений, хранящихся в перечне. Подробнее...
class  Item
 Класс эл-та перечня. Подробнее...

Определения типов

template<typename ValueT, typename StoreT = ValueT>
typedef ValueT Cntm::Register< ValueT, StoreT >::Type

См. определение в файле Register.h строка 43


Методы

template<typename ValueT, typename StoreT = ValueT>
bool Cntm::Register< ValueT, StoreT >::IsEmpty (  )  const [inline]

Возвращает true, если перечень пуст, в противном случае - false.

См. определение в файле Register.h строка 376

template<typename ValueT, typename StoreT = ValueT>
Enumerator Cntm::Register< ValueT, StoreT >::GetEnumerator ( bool  DynamicExpanded = true  )  const [inline]

Получить объект перечислителя для доступа к эл-там.

Аргументы:
DynamicExpanded - true (значение по умолчанию) - перечислитель будет перечислять эл-ты, добавленные в перечень после создания перечислителя, false - перечислитель будет переслять только те эл-ты, которые были в перечне на момент создания перечислителя (удаленные эл-ты перечислитель не перечисляет в любом случае).

Переопределяется в Cntm::NoRefPtrRegister< T >.

См. определение в файле Register.h строка 382


Документация по друзьям класса и функциям, отноносящимся к классу

template<typename ValueT, typename StoreT = ValueT>
friend class Enumerator [friend]

См. определение в файле Register.h строка 389

template<typename ValueT, typename StoreT = ValueT>
friend class Item [friend]

См. определение в файле Register.h строка 390


Объявления и описания членов класса находятся в файле:
SourceForge.net Logo
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой  doxygen 1.5.3