Класс Cntm::Register< ValueT, StoreT >::Item
[Cntm.Containers]

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

Cntm::LinkedListItemBase

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


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

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

Класс эл-та перечня.

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

Эл-т позволяет принудительно сбрасывать значение. При этом оно изымается из перечня и уничтожается.

Эл-т может быть пустым или содержать значение. Эл-т пуст после вызова конструктора по умолчанию, вызова Unassign() или присвоения пустого эл-та. Наличие значения можно определить методом Assigned().

Класс обеспечивает многопоточность.

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

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


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

typedef ValueT Type

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

 Item ()
 Конструктор по умолчанию.
 Item (Register *Reg, const Type &Value)
 Конструктор инициализации.
 Item (Register &Reg, const Type &Value)
 Конструктор инициализации.
 Item (const Item &Src)
 Конструктор копирования.
 ~Item ()
 Деструктор.
Itemoperator= (const Item &Src)
 Оператор копирования.
bool Assigned () const
 Если эл-т содержит значение, то возвращает true иначе - false.
Type Value () const
 Возвращает значение, хранящееся в эл-те.
RegisterReg () const
 Возвращает перечень, в котором зарегистрировано значение.
void Set (Register *Reg, const Type &Value)
 Установить новое значение.
void Set (Register &Reg, const Type &Value)
 Установить новое значение.
void Unassign ()
 Сброс значения.

Друзья

class Register

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

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

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


Конструктор(ы)

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

Конструктор по умолчанию.

Инициализирует перечень в NULL. Эл-т не содержит никакого значения, вызов метода Value() запрещен.

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

template<typename ValueT, typename StoreT = ValueT>
Cntm::Register< ValueT, StoreT >::Item::Item ( Register Reg,
const Type Value 
) [inline]

Конструктор инициализации.

Сохраняет значение Value (преобразуя его к типу StoreT) и регистрирует его в перечне Reg. Если Reg равен NULL, то ни каких действий не выполняется.

Аргументы:
Reg - перечень, в котором будет зарегистрировано значение.
Value - значение, которое будет зарегистрировано в перечне.

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

Перекрестные ссылки Cntm::Register< ValueT, StoreT >::AddItem() и Cntm::SpecUtils::ObjectAllocateBuffer< T >::Place().

template<typename ValueT, typename StoreT = ValueT>
Cntm::Register< ValueT, StoreT >::Item::Item ( Register Reg,
const Type Value 
) [inline]

Конструктор инициализации.

Сохраняет значение Value (преобразуя его к типу StoreT) и регистрирует его в перечне Reg. Если Reg равен NULL, то ни каких действий не выполняется.

Аргументы:
Reg - перечень, в котором будет зарегистрировано значение.
Value - значение, которое будет зарегистрировано в перечне.

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

Перекрестные ссылки Cntm::Register< ValueT, StoreT >::AddItem() и Cntm::SpecUtils::ObjectAllocateBuffer< T >::Place().

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

Конструктор копирования.

Копирует значение из исходного эл-та и регистрирует его в перечне, если исходный эл-т не пуст.

Аргументы:
Src - исходный эл-т.

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

Перекрестные ссылки Cntm::Register< ValueT, StoreT >::AddItem(), Cntm::SpecUtils::ObjectAllocateBuffer< T >::Place() и Cntm::Register< ValueT, StoreT >::Item::StoreValue().

template<typename ValueT, typename StoreT = ValueT>
Cntm::Register< ValueT, StoreT >::Item::~Item (  )  [inline]

Деструктор.

Если эл-т не пуст, то значение изымается из перечня и удаляется.

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

Перекрестные ссылки Cntm::Register< ValueT, StoreT >::Item::Unassign().


Методы

template<typename ValueT, typename StoreT>
Cntm::Register< ValueT, StoreT >::Item & Cntm::Register< ValueT, StoreT >::Item::operator= ( const Item Src  )  [inline]

Оператор копирования.

Если эл-т не пуст, то значение изымается из перечня и удаляется. После этого копирует значение из исходного эл-та и регистрирует его в перечне, если исходный эл-т не пуст.

Аргументы:
Src - исходный эл-т.

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

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

Если эл-т содержит значение, то возвращает true иначе - false.

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

template<typename ValueT, typename StoreT = ValueT>
Type Cntm::Register< ValueT, StoreT >::Item::Value (  )  const [inline]

Возвращает значение, хранящееся в эл-те.

Метод следует вызывать только когда в эл-те имеется значение (для определения наличия значение можно использовать Assigned()).

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

template<typename ValueT, typename StoreT = ValueT>
Register* Cntm::Register< ValueT, StoreT >::Item::Reg (  )  const [inline]

Возвращает перечень, в котором зарегистрировано значение.

Если эл-т не содержит значения, то возвращается NULL.

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

template<typename ValueT, typename StoreT>
void Cntm::Register< ValueT, StoreT >::Item::Set ( Register Reg,
const Type Value 
) [inline]

Установить новое значение.

Если эл-т не пуст, то значение изымается из перечня и удаляется. После этого копирует значение из Value и регистрирует его в перечне Reg, если Reg не равен NULL.

Аргументы:
Reg - перечень, в котором будет зарегистрировано значение.
Value - значение, которое будет зарегистрировано в перечне.

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

template<typename ValueT, typename StoreT = ValueT>
void Cntm::Register< ValueT, StoreT >::Item::Set ( Register Reg,
const Type Value 
) [inline]

Установить новое значение.

Если эл-т не пуст, то значение изымается из перечня и удаляется. После этого копирует значение из Value и регистрирует его в перечне Reg, если Reg не равен NULL.

Аргументы:
Reg - перечень, в котором будет зарегистрировано значение.
Value - значение, которое будет зарегистрировано в перечне.

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

Перекрестные ссылки Cntm::Register< ValueT, StoreT >::Item::Set().

template<typename ValueT, typename StoreT>
void Cntm::Register< ValueT, StoreT >::Item::Unassign (  )  [inline]

Сброс значения.

Если эл-т не пуст, то значение изымается из перечня и удаляется.

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


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

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

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


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