Используется для перебора всех значений перечня.
После создания перечислитель не содержит текущего значения. Перечисление начинается с первого вызова Next(). Цикл перечисления выглядит так: while (enum1.Next()) Process1(enum1.Current()).
Изменения в контейнере не влияют на текущее состояние перечислителя. Если в перечне будет удалено текущее значение перечислителя, то оно по прежнему будет присутствовать в перечислителе, а следующим будет значение, которое было после текущего. Если будет удалено значение после текущего, то оно уже не будет перечислено. Если будет удалено значение перед текущим, то при повторном перечислении оно уже не будет перечислено.
Перечислители бывают 2 видов: динамически включающие добавленные в перечень эл-ты и не включающие. В первом случае если после создания перечислителя в перечень будет добавлено новое значение, то оно будет перечислено. Во втором случае перечисляются только те эл-ты, которые находились в перечне на момент создания перечислителя (пример: если на момент создания перечислителя перечень был пуст, а после в него добавили новые эл-ты, то перечислитель не вернет ни одного значения).
Для доступа к значениям одного перечня можно использовать сразу несколько перечислителей.
Данный класс не является многопоточным. Чтобы получить доступ к эл-там перечня из разных потоков одновременно, следует создать перечислители для каждого потока.
См. определение в файле Register.h строка 64
Открытые типы | |
typedef ValueT | Type |
Открытые члены | |
Enumerator (const Enumerator &Src) | |
Конструктор копирования. | |
~Enumerator () | |
Деструктор. | |
Enumerator & | operator= (const Enumerator &Src) |
Оператор присвоения нового значения. | |
Enumerator & | operator++ () |
Перейти к следующему эл-ту. | |
operator bool () const | |
Возвращает Enumerated(). | |
bool | operator! () const |
Возвращает !Enumerated(). | |
const Type & | operator * () const |
Получить ссылку на текущее значение. | |
const Type * | operator-> () const |
Получить адрес текущего значения для доступа к его членам. | |
bool | Enumerated () const |
Возвращает true - если идет перечисление, т. | |
bool | CurrentAvailable () const |
Возвращает true - если текущее значение перечислителя можно использовать (оно инициализировано), иначе false. | |
const Type & | Current () const |
Возвращает текущее значение перечислителя. | |
void | ResetCurrent () |
Сбросить текущее значение перечислителя. | |
bool | Next () |
При первом вызове после создания или сброса начинает перечисление. | |
void | Reset () |
Сбросить перечислитель в исходное состояние, аналогичное состоянию после создания перечислителя. | |
Защищенные члены | |
Enumerator (Register *Reg, bool DynamicExpanded) | |
Конструктор. | |
Register * | Reg () const |
Указатель на перечень. | |
LinkedListItemBase * | CurrentItem () const |
Указатель на текущий эл-т. | |
LinkedListItemBase * | LastItem () const |
Указатель на последний перечисляемый эл-т или NULL если перечислитель динамически включающий. | |
void | SetCurrentItem (LinkedListItemBase *Item) |
Установить указатель на текущий эл-т. | |
void | SetLastItem (LinkedListItemBase *Item) |
Установить указатель на последний эл-т. | |
Друзья | |
class | Register |
typedef ValueT Cntm::Register< ValueT, StoreT >::Enumerator::Type |
См. определение в файле Register.h строка 68
Cntm::Register< ValueT, StoreT >::Enumerator::Enumerator | ( | const Enumerator & | Src | ) | [inline] |
Конструктор копирования.
Создает точную копию перечислителя Src (полностью копирует его состояние: текущее значение Current() (если идет перечисление), текущую позицию, флаг Enumerated()).
Src | - исходный перечислитель. |
См. определение в файле Register.h строка 464
Cntm::Register< ValueT, StoreT >::Enumerator::~Enumerator | ( | ) | [inline] |
Cntm::Register< ValueT, StoreT >::Enumerator::Enumerator | ( | Register * | Reg, | |
bool | DynamicExpanded | |||
) | [inline, protected] |
Конструктор.
Используется перечнем для инициализации перечислителя.
См. определение в файле Register.h строка 573
Cntm::Register< ValueT, StoreT >::Enumerator & Cntm::Register< ValueT, StoreT >::Enumerator::operator= | ( | const Enumerator & | Src | ) | [inline] |
Оператор присвоения нового значения.
Производит сброс перечислителя и присвоение нового состояния (см. конструктор копирования).
Src | - исходный перечислитель. |
См. определение в файле Register.h строка 487
Enumerator& Cntm::Register< ValueT, StoreT >::Enumerator::operator++ | ( | ) | [inline] |
Перейти к следующему эл-ту.
Вызывает функцию Next(). См. функцию Next().
См. определение в файле Register.h строка 90
Перекрестные ссылки Cntm::Register< ValueT, StoreT >::Enumerator::Next().
Cntm::Register< ValueT, StoreT >::Enumerator::operator bool | ( | ) | const [inline] |
Возвращает Enumerated().
См. флаг Enumerated().
См. определение в файле Register.h строка 99
Перекрестные ссылки Cntm::Register< ValueT, StoreT >::Enumerator::Enumerated().
bool Cntm::Register< ValueT, StoreT >::Enumerator::operator! | ( | ) | const [inline] |
Возвращает !Enumerated().
См. флаг Enumerated().
См. определение в файле Register.h строка 104
Перекрестные ссылки Cntm::Register< ValueT, StoreT >::Enumerator::Enumerated().
const Type& Cntm::Register< ValueT, StoreT >::Enumerator::operator * | ( | ) | const [inline] |
Получить ссылку на текущее значение.
См. Current().
См. определение в файле Register.h строка 109
Перекрестные ссылки Cntm::Register< ValueT, StoreT >::Enumerator::Current().
const Type* Cntm::Register< ValueT, StoreT >::Enumerator::operator-> | ( | ) | const [inline] |
Получить адрес текущего значения для доступа к его членам.
См. Current().
См. определение в файле Register.h строка 114
Перекрестные ссылки Cntm::Register< ValueT, StoreT >::Enumerator::Current().
bool Cntm::Register< ValueT, StoreT >::Enumerator::Enumerated | ( | ) | const [inline] |
Возвращает true - если идет перечисление, т.
е. перечисление было начато и не достигнут конец перечня, иначе false.
См. определение в файле Register.h строка 119
bool Cntm::Register< ValueT, StoreT >::Enumerator::CurrentAvailable | ( | ) | const [inline] |
Возвращает true - если текущее значение перечислителя можно использовать (оно инициализировано), иначе false.
См. определение в файле Register.h строка 124
const Type& Cntm::Register< ValueT, StoreT >::Enumerator::Current | ( | ) | const [inline] |
Возвращает текущее значение перечислителя.
Значение доступно только после первого вызова Next() и до тех пор, пока Next(), в том числе и первый, возвращает true. Значение Current() доступно, пока установлен флаг Enumerated().
См. определение в файле Register.h строка 129
void Cntm::Register< ValueT, StoreT >::Enumerator::ResetCurrent | ( | ) | [inline] |
Сбросить текущее значение перечислителя.
После сброса текущее значение становится недоступным до следующего вызова Next(). При сбросе вызывается деструктор текущего значения. Сброс происходит, если текущее значение было инициализировано (если шло перечисление).
См. определение в файле Register.h строка 516
bool Cntm::Register< ValueT, StoreT >::Enumerator::Next | ( | ) | [inline] |
При первом вызове после создания или сброса начинает перечисление.
Если в перечне есть хотя бы 1 эл-т, то Current() будет содержать первый эл-т, флаг Enumerated() и возвращаемое значение будут равны true. Если значений нет, то значение Current() неопределено, а флаг Enumerated() и возвращаемое значение будут равны false.
При последующих вызовах будет производится считывание следующих значений. Если будет достигнут конец перечня, то значение Current() будет неопределено, а флаг Enumerated() и возвращаемое значение будут равны false.
При возникновении исключений в конструкторе и деструкторе типа Type при инициализации текущего значения перечисление прекращается.
См. определение в файле Register.h строка 524
void Cntm::Register< ValueT, StoreT >::Enumerator::Reset | ( | ) | [inline] |
Сбросить перечислитель в исходное состояние, аналогичное состоянию после создания перечислителя.
См. определение в файле Register.h строка 562
Register* Cntm::Register< ValueT, StoreT >::Enumerator::Reg | ( | ) | const [inline, protected] |
LinkedListItemBase* Cntm::Register< ValueT, StoreT >::Enumerator::CurrentItem | ( | ) | const [inline, protected] |
LinkedListItemBase* Cntm::Register< ValueT, StoreT >::Enumerator::LastItem | ( | ) | const [inline, protected] |
Указатель на последний перечисляемый эл-т или NULL если перечислитель динамически включающий.
См. определение в файле Register.h строка 175
void Cntm::Register< ValueT, StoreT >::Enumerator::SetCurrentItem | ( | LinkedListItemBase * | Item | ) | [inline, protected] |
void Cntm::Register< ValueT, StoreT >::Enumerator::SetLastItem | ( | LinkedListItemBase * | Item | ) | [inline, protected] |
friend class Register [friend] |
См. определение в файле Register.h строка 155
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой 1.5.3 |