Данный перечень содержит только ссылки на зарегистрированные в нем значения.
Для хранения значения используется класс эл-та внешнего перечня - 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 |
Класс эл-та перечня. Подробнее... |
typedef ValueT Cntm::Register< ValueT, StoreT >::Type |
См. определение в файле Register.h строка 43
bool Cntm::Register< ValueT, StoreT >::IsEmpty | ( | ) | const [inline] |
Возвращает true, если перечень пуст, в противном случае - false.
См. определение в файле Register.h строка 376
Enumerator Cntm::Register< ValueT, StoreT >::GetEnumerator | ( | bool | DynamicExpanded = true |
) | const [inline] |
Получить объект перечислителя для доступа к эл-там.
DynamicExpanded | - true (значение по умолчанию) - перечислитель будет перечислять эл-ты, добавленные в перечень после создания перечислителя, false - перечислитель будет переслять только те эл-ты, которые были в перечне на момент создания перечислителя (удаленные эл-ты перечислитель не перечисляет в любом случае). |
Переопределяется в Cntm::NoRefPtrRegister< T >.
См. определение в файле Register.h строка 382
friend class Enumerator [friend] |
См. определение в файле Register.h строка 389
friend class Item [friend] |
См. определение в файле Register.h строка 390
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |