Класс Cntm::HandledList< ValueT, StoreT >::Enumerator

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


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

template<typename ValueT, typename StoreT = ValueT>
class Cntm::HandledList< ValueT, StoreT >::Enumerator

Класс для перечисления значений, хранящихся в перечне.

Используется для перебора всех значений перечня.

После создания перечислитель не содержит текущего значения. Перечисление начинается с первого вызова Next(). Цикл перечисления выглядит так: while (enum1.Next()) Process1(enum1.Current()).

Изменения в контейнере не влияют на состояние перечислителя. Если в перечне будет удалено текущее значение перечислителя, то оно по прежнему будет присутствовать в перечислителе, а следующим будет значение, которое было после текущего. Если будет удалено значение после текущего, то оно уже не будет перечислено. Если в процессе перечисления в перечень будет добавлено новое значение, то оно будет перечислено.

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

Данный класс не является многопоточным. Чтобы получить доступ к эл-там перечня из разных потоков одновременно, следует создать перечислители для каждого потока.

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

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


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

typedef ValueT Type

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

 Enumerator (const Enumerator &Src)
 Конструктор копирования.
Enumeratoroperator= (const Enumerator &Src)
 Оператор присвоения нового значения.
Enumeratoroperator++ ()
 Перейти к следующему эл-ту.
 ~Enumerator ()
 Деструктор.
 operator bool () const
 Возвращает Enumerated().
bool operator! () const
 Возвращает !Enumerated().
const Typeoperator * () const
 Получить ссылку на текущее значение.
const Typeoperator-> () const
 Получить адрес текущего значения для доступа к его членам.
bool Enumerated () const
 Возвращает true - если идет перечисление, т.
const TypeCurrent () const
 Возвращает текущее значение перечислителя.
bool Next ()
 При первом вызове после создания или сброса начинает перечисление.
void Reset ()
 Сбросить перечислитель в исходное состояние, аналогичное состоянию после создания перечислителя.

Защищенные члены

 Enumerator (HandledList *List)
 Конструктор.
HandledListList () const
 Указатель на перечислитель.
const ItemId & CurrentId () const
 Идентификатор текущего значения в списке эл-тов.
ItemId & CurrentId ()
 Идентификатор текущего значения в списке эл-тов.

Друзья

class HandledList

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

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

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


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

template<typename ValueT, typename StoreT>
Cntm::HandledList< ValueT, StoreT >::Enumerator::Enumerator ( const Enumerator Src  )  [inline]

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

Создает точную копию перечислителя Src (полностью копирует его состояние: текущее значение Current() (если идет перечисление), текущую позицию, флаг Enumerated()).

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

template<typename ValueT, typename StoreT>
Cntm::HandledList< ValueT, StoreT >::Enumerator::~Enumerator (  )  [inline]

Деструктор.

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

template<typename ValueT, typename StoreT>
Cntm::HandledList< ValueT, StoreT >::Enumerator::Enumerator ( HandledList List  )  [inline, protected]

Конструктор.

Используется перечнем для инициализации перечислителя.

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


Методы

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

Оператор присвоения нового значения.

Производит сброс перечислителя и присвоение нового состояния (см. конструктор копирования).

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

template<typename ValueT, typename StoreT = ValueT>
Enumerator& Cntm::HandledList< ValueT, StoreT >::Enumerator::operator++ (  )  [inline]

Перейти к следующему эл-ту.

Вызывает функцию Next(). См. функцию Next().

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

Перекрестные ссылки Cntm::HandledList< ValueT, StoreT >::Enumerator::Next().

template<typename ValueT, typename StoreT = ValueT>
Cntm::HandledList< ValueT, StoreT >::Enumerator::operator bool (  )  const [inline]

Возвращает Enumerated().

См. флаг Enumerated().

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

Перекрестные ссылки Cntm::HandledList< ValueT, StoreT >::Enumerator::Enumerated().

template<typename ValueT, typename StoreT = ValueT>
bool Cntm::HandledList< ValueT, StoreT >::Enumerator::operator! (  )  const [inline]

Возвращает !Enumerated().

См. флаг Enumerated().

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

Перекрестные ссылки Cntm::HandledList< ValueT, StoreT >::Enumerator::Enumerated().

template<typename ValueT, typename StoreT = ValueT>
const Type& Cntm::HandledList< ValueT, StoreT >::Enumerator::operator * (  )  const [inline]

Получить ссылку на текущее значение.

См. Current().

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

Перекрестные ссылки Cntm::HandledList< ValueT, StoreT >::Enumerator::Current().

template<typename ValueT, typename StoreT = ValueT>
const Type* Cntm::HandledList< ValueT, StoreT >::Enumerator::operator-> (  )  const [inline]

Получить адрес текущего значения для доступа к его членам.

См. Current().

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

Перекрестные ссылки Cntm::HandledList< ValueT, StoreT >::Enumerator::Current().

template<typename ValueT, typename StoreT = ValueT>
bool Cntm::HandledList< ValueT, StoreT >::Enumerator::Enumerated (  )  const [inline]

Возвращает true - если идет перечисление, т.

е. перечисление было начато и не достигнут конец перечня, иначе false.

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

template<typename ValueT, typename StoreT = ValueT>
const Type& Cntm::HandledList< ValueT, StoreT >::Enumerator::Current (  )  const [inline]

Возвращает текущее значение перечислителя.

Значение доступно только после первого вызова Next() и до тех пор, пока Next(), в том числе и первый, возвращает true. Значение Current() доступно, пока установлен флаг Enumerated().

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

template<typename ValueT, typename StoreT>
bool Cntm::HandledList< ValueT, StoreT >::Enumerator::Next (  )  [inline]

При первом вызове после создания или сброса начинает перечисление.

Если в перечне есть хотя бы 1 эл-т, то Current() будет содержать первый эл-т, флаг Enumerated() и возвращаемое значение будут равны true. Если значений нет, то значение Current() неопределено, а флаг Enumerated() и возвращаемое значение будут равны false.

При последующих вызовах будет производится считывание следующих значений. Если будет достигнут конец перечня, то значение Current() будет неопределено, а флаг Enumerated() и возвращаемое значение будут равны false.

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

template<typename ValueT, typename StoreT>
void Cntm::HandledList< ValueT, StoreT >::Enumerator::Reset (  )  [inline]

Сбросить перечислитель в исходное состояние, аналогичное состоянию после создания перечислителя.

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

template<typename ValueT, typename StoreT = ValueT>
HandledList* Cntm::HandledList< ValueT, StoreT >::Enumerator::List (  )  const [inline, protected]

Указатель на перечислитель.

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

template<typename ValueT, typename StoreT = ValueT>
const ItemId& Cntm::HandledList< ValueT, StoreT >::Enumerator::CurrentId (  )  const [inline, protected]

Идентификатор текущего значения в списке эл-тов.

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

template<typename ValueT, typename StoreT = ValueT>
ItemId& Cntm::HandledList< ValueT, StoreT >::Enumerator::CurrentId (  )  [inline, protected]

Идентификатор текущего значения в списке эл-тов.

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


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

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

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


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