#include <Aggregate.h>
Public Member Functions | |
| TraceIterator (Trace *trc, int idx) | |
| TraceIterator (const TraceIterator &toCopy) | |
| TraceIterator & | operator= (const TraceIterator &rhs) |
| TraceIterator * | clone (void) const |
| TraceIterator | operator+ (int increment) const |
| TraceIterator & | operator++ (void) |
| TraceIterator | operator- (int decrement) const |
| TraceIterator & | operator-- (void) |
| bool | operator== (const TraceIterator &rhs) const |
| bool | operator!= (const TraceIterator &rhs) const |
| Packet & | operator * (void) throw ( std::runtime_error, IndexOutOfBoundsException ) |
| Packet * | operator-> (void) throw ( std::runtime_error, IndexOutOfBoundsException ) |
| const Packet & | operator * (void) const throw ( std::runtime_error, IndexOutOfBoundsException ) |
| const Packet * | operator-> (void) const throw ( std::runtime_error, IndexOutOfBoundsException ) |
| const StreamKey & | getStreamKey (void) const throw ( std::runtime_error ) |
| bool | isValid (void) const |
Protected Attributes | |
| Trace * | trace |
| int | index |
Friends | |
| class | Trace |
Not yet compliant with STL iterators; will have to do that if this is eventually to be used in STL algorithms. For the time being, however, it's just going to do what I need it to do, and not much more.
The interface is a bit wonky, unfortunately. To avoid having to maintain a seperate wrapper class, the iterator is not dereferenced like a pointer, and instead contains member functions that direct requests through the aggregate.
TraceIterator should behave as a const_iterator; that is, it should not modify the aggregate to which it refers.
TraceIterator is monomorphic to allow things like low-headache copying.
|
|
|
check if the TraceIterator is valid; i.e. refers to a valid location in a Trace |
|
|
preincrement |
|
|
Request the value of a PacketAttribute for the packet pointed to by the iterator |
1.4.2