|
| IndividualFieldValueIterator (const std::shared_ptr< bcf1_t > &body, uint8_t *data_ptr, uint8_t *end_ptr, const uint8_t num_bytes, const utils::VariantFieldType &type) |
| Constructor with bcf1_t structure and start and end pointers of the array/vector. More...
|
|
| IndividualFieldValueIterator (const std::shared_ptr< bcf1_t > &body, uint8_t *data_ptr, const uint8_t num_bytes, const utils::VariantFieldType &type) |
| Constructor with bcf1_t structure and start pointer of the array/vector. More...
|
|
| IndividualFieldValueIterator (const IndividualFieldValueIterator &other) |
| copy constructor is only meant for internal STL functions use. It makes a shallow copy of the underlying object which is sufficient for an iterator, but not exactly what a user would expect (user should expect copy constructors to make deep copies). But a deep copied iterator makes no sense. More...
|
|
| IndividualFieldValueIterator (IndividualFieldValueIterator &&other) noexcept |
| copy constructor is only meant for internal STL functions use. It makes a shallow copy of the underlying object which is sufficient for an iterator, but not exactly what a user would expect (user should expect copy constructors to make deep copies). But a deep copied iterator makes no sense. More...
|
|
IndividualFieldValueIterator & | operator= (const IndividualFieldValueIterator &other) |
| copy constructor is only meant for internal STL functions use. It makes a shallow copy of the underlying object which is sufficient for an iterator, but not exactly what a user would expect (user should expect copy constructors to make deep copies). But a deep copied iterator makes no sense. More...
|
|
IndividualFieldValueIterator & | operator= (IndividualFieldValueIterator &&other) noexcept |
| safely moves the data from one VariantField to a new one without making any copies More...
|
|
IndividualFieldValueIterator & | operator+= (const int n) |
| simple compound assignment operation for random advances (back/forward) to the iterator More...
|
|
IndividualFieldValueIterator & | operator-= (const int n) |
| simple compound assignment operation for random advances (back/forward) to the iterator More...
|
|
bool | operator== (const IndividualFieldValueIterator &other) |
| two iterators are equal if they are in exactly the same state (pointing at the same location in memory More...
|
|
bool | operator!= (const IndividualFieldValueIterator &other) |
| the oposite check of IndividualFieldValueIterator::operator==() More...
|
|
bool | operator< (const IndividualFieldValueIterator &other) |
| an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the FormatField object. The order is determined by the Variant record. More...
|
|
bool | operator> (const IndividualFieldValueIterator &other) |
| an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the FormatField object. The order is determined by the Variant record. More...
|
|
bool | operator<= (const IndividualFieldValueIterator &other) |
| an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the FormatField object. The order is determined by the Variant record. More...
|
|
bool | operator>= (const IndividualFieldValueIterator &other) |
| an operator is greater/less than another iterator if it is pointing to a previous element (sample) in the FormatField object. The order is determined by the Variant record. More...
|
|
VALUE_TYPE | operator* () const noexcept |
| direct access to the value of the current sample More...
|
|
VALUE_TYPE | read_and_cache_current_pointee () noexcept |
|
IndividualFieldValueIterator & | operator++ () noexcept |
| advances to the next sample More...
|
|
IndividualFieldValueIterator | operator++ (int) noexcept |
| postfix operator to advance iterator to the next position More...
|
|
IndividualFieldValueIterator & | operator-- () |
| advances to the previous sample More...
|
|
IndividualFieldValueIterator | operator-- (int) noexcept |
| postfix operator to retreat iterator to the previous position More...
|
|
VALUE_TYPE | operator[] (const uint32_t index) const |
| random access to the value of a given index for reading or writing More...
|
|
template<class VALUE_TYPE>
class gamgee::IndividualFieldValueIterator< VALUE_TYPE >
iterator for FormatFieldGenericValue objects.
This iterator will walk through all the values for a sample for a given FormatFieldGenericValue object. For example if you want to iterate over all the GQ values of a Variant record you would do so through this iterator.
- Note
- implements a random access iterator which gives you full performance on STL algorithms that use iterators (mostly every one)
-
this iterator never makes any copies of the underlying memory. It is implemented with pointer acrobatics behind the scenes for maximum performance while maintaining a friendly interface.
- Warning
- modifying any elements via this iterator will modify the values in the Variant record.