ExpandingValueIteratorI Class
A ValueIteratorI that expands "repeated" values into multiple values. (Repeated values have a severity of ARCH_REPEAT, the status is then interpreted as a repetition count).
Clients using this filter will never see repeat counts but always the expanded values.
Example Usage
The expanding iterator requires a "base" iterator for the archive type that you work on:ValueIterator base(archive); channel->getValueAfterTime(start, base );
When creating an ExpandingValueIteratorI for that base iterator, it's usually convenient to access it via a ValueIterator smart wrapper so that it behaves like an ordinary iterator:ValueIterator value (new ExpandingValueIteratorI(base)); while (value) { cout << *value << "\n"; ++value; }
TO DO:
Huge repeat counts are expanded. This takes forever and the repeats may not be useful.Interface
- Create an ExpandingValueIteratorI based on another ValueIterator.
The base iterator has to exist for the lifetime of the ExpandingValueIterator.ExpandingValueIteratorI(ValueIterator &base);- Implemented of ValueIteratorI:
bool isValid() const; const ValueI * getValue() const; bool next(); bool prev(); size_t determineChunk(const osiTime &until); double getPeriod() const;- Is current value generated by expanding repeated values?
bool isExpanded() const;
IndexCreated from sources with MakeDoc Perl script.