#include <PartialCandidateItr.h>
Definition at line 47 of file PartialCandidateItr.h.
typedef dchain::candidateitr::difference_type dchain::PartialCandidateItr< CandidateClass >::difference_type |
Definition at line 56 of file PartialCandidateItr.h.
typedef std::bidirectional_iterator_tag dchain::PartialCandidateItr< CandidateClass >::iterator_category |
Definition at line 61 of file PartialCandidateItr.h.
typedef value_type* dchain::PartialCandidateItr< CandidateClass >::pointer |
Definition at line 59 of file PartialCandidateItr.h.
typedef value_type& dchain::PartialCandidateItr< CandidateClass >::reference |
Definition at line 58 of file PartialCandidateItr.h.
typedef dchain::candidateitr::size_type dchain::PartialCandidateItr< CandidateClass >::size_type |
Definition at line 57 of file PartialCandidateItr.h.
typedef LabeledCandidate<CandidateClass> dchain::PartialCandidateItr< CandidateClass >::value_type |
Definition at line 55 of file PartialCandidateItr.h.
dchain::PartialCandidateItr< CandidateClass >::PartialCandidateItr | ( | ) | [inline] |
dchain::PartialCandidateItr< CandidateClass >::PartialCandidateItr | ( | const PartialCandidateItr< CandidateClass > & | aOtherItr | ) | [inline] |
Definition at line 156 of file PartialCandidateItr.h.
00156 : 00157 m_indexedCandidates( aOtherItr.indexedCandidates() ) , 00158 m_index( aOtherItr.index() ) , 00159 m_label( aOtherItr.label() ) 00160 { 00161 }
virtual dchain::PartialCandidateItr< CandidateClass >::~PartialCandidateItr | ( | ) | [inline, virtual] |
dchain::PartialCandidateItr< CandidateClass >::PartialCandidateItr | ( | const IndexedLabeledCandidates< CandidateClass > * | aList, | |
const size_type | aIndex, | |||
const conjugation::Label | aLabel | |||
) | [inline, protected] |
Definition at line 165 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::m_index, dchain::PartialCandidateItr< CandidateClass >::m_label, and dchain::PartialCandidateItr< CandidateClass >::operator++().
00167 : 00168 // cast away const as const_iterator can be assocciated with a non-const list, 00169 // but only const lists use this constructor 00170 m_indexedCandidates( (IndexedLabeledCandidates< CandidateClass >*)aList ) , 00171 m_index( aIndex ) , 00172 m_label( aLabel ) 00173 { 00174 // move to first entry with correct label 00175 if ( ( m_index < size_type( (*m_indexedCandidates).size() ) ) && 00176 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label ) 00177 ) { 00178 operator++() ; 00179 } 00180 }
PartialCandidateItr< CandidateClass >::size_type dchain::PartialCandidateItr< CandidateClass >::index | ( | ) | const [inline, protected] |
Definition at line 132 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::m_index.
Referenced by dchain::PartialCandidateItr< CandidateClass >::operator!=(), dchain::PartialCandidateItr< CandidateClass >::operator=(), and dchain::PartialCandidateItr< CandidateClass >::operator==().
00133 { 00134 return ( m_index ) ; 00135 }
IndexedLabeledCandidates< CandidateClass > * dchain::PartialCandidateItr< CandidateClass >::indexedCandidates | ( | ) | const [inline, protected] |
Definition at line 124 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::m_indexedCandidates.
Referenced by dchain::PartialCandidateItr< CandidateClass >::operator!=(), dchain::PartialCandidateItr< CandidateClass >::operator=(), and dchain::PartialCandidateItr< CandidateClass >::operator==().
00125 { 00126 return ( m_indexedCandidates ) ; 00127 }
conjugation::Label dchain::PartialCandidateItr< CandidateClass >::label | ( | ) | const [inline, protected] |
Definition at line 139 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::m_label.
Referenced by dchain::PartialCandidateItr< CandidateClass >::operator!=(), dchain::PartialCandidateItr< CandidateClass >::operator=(), and dchain::PartialCandidateItr< CandidateClass >::operator==().
00140 { 00141 return ( m_label ) ; 00142 }
const LabeledCandidate< CandidateClass > & dchain::PartialCandidateItr< CandidateClass >::operator * | ( | ) | const [inline] |
Reimplemented in dchain::PartialItr< T >.
Definition at line 293 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::m_index.
00294 { 00295 return ( (*m_indexedCandidates).labeledCandidateClass( m_index ) ) ; 00296 }
bool dchain::PartialCandidateItr< CandidateClass >::operator!= | ( | const PartialCandidateItr< CandidateClass > & | aOtherItr | ) | const [inline] |
Definition at line 311 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::index(), dchain::PartialCandidateItr< CandidateClass >::indexedCandidates(), dchain::PartialCandidateItr< CandidateClass >::label(), dchain::PartialCandidateItr< CandidateClass >::m_index, dchain::PartialCandidateItr< CandidateClass >::m_indexedCandidates, and dchain::PartialCandidateItr< CandidateClass >::m_label.
00312 { 00313 // There needs to be a final test on the label as itrs with two different labels 00314 // have the same values for the past-the-end value 00315 return ( ( m_index != aOtherItr.index() ) || 00316 ( m_indexedCandidates != aOtherItr.indexedCandidates() ) || 00317 ( m_label != aOtherItr.label() ) ) ; 00318 }
PartialCandidateItr< CandidateClass > dchain::PartialCandidateItr< CandidateClass >::operator++ | ( | int | ) | [inline] |
Reimplemented in dchain::PartialItr< T >.
Definition at line 223 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::m_index, and dchain::PartialCandidateItr< CandidateClass >::m_label.
00224 { 00225 PartialCandidateItr< CandidateClass > tmp( *this ) ; 00226 ++m_index ; 00227 // This while loop find next match to label. 00228 // The order is done for efficiency reasons. It is more likely a label 00229 // will match than the end of the list has been reached. However this 00230 // will can cause an access to an uninitiallized location, but the 00231 // loop will still terminate correctly. 00232 while ( 00233 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label ) && 00234 ( m_index < size_type( (*m_indexedCandidates).size() ) ) ) { 00235 ++m_index ; 00236 } 00237 return ( tmp ) ; 00238 }
PartialCandidateItr< CandidateClass > & dchain::PartialCandidateItr< CandidateClass >::operator++ | ( | ) | [inline] |
Reimplemented in dchain::PartialItr< T >.
Definition at line 202 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::m_index, and dchain::PartialCandidateItr< CandidateClass >::m_label.
Referenced by dchain::PartialCandidateItr< CandidateClass >::PartialCandidateItr().
00203 { 00204 ++m_index ; 00205 // This while loop find next match to label. 00206 // The order is done for efficiency reasons. It is more likely a label 00207 // will match than the end of the list has been reached. However this 00208 // will can cause an access to an uninitiallized location, but the 00209 // loop will still terminate correctly. 00210 // update: the efficiency doesn't matter but reading invalid memory 00211 // makes our automated memory checkers have fits 00212 while ( 00213 ( m_index < size_type( (*m_indexedCandidates).size() ) && 00214 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label ) 00215 ) ) { 00216 ++m_index ; 00217 } 00218 return ( *this ) ; 00219 }
PartialCandidateItr< CandidateClass > dchain::PartialCandidateItr< CandidateClass >::operator-- | ( | int | ) | [inline] |
Reimplemented in dchain::PartialItr< T >.
Definition at line 265 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::m_index, and dchain::PartialCandidateItr< CandidateClass >::m_label.
00266 { 00267 PartialCandidateItr< CandidateClass > tmp( *this ) ; 00268 // As the index is 'unsigned' it should not go below zero. This behavior is completely 00269 // consistent with the STL reverse_iterator adaptor. (See pp254 of Musser & Saini) 00270 // 00271 if ( 0 != m_index ) { 00272 --m_index ; 00273 } 00274 // This while loop find next match to label. 00275 // The order is done for efficiency reasons. It is more likely a label 00276 // will match than the end of the list has been reached. However this 00277 // will can cause an access to an uninitiallized location, but the 00278 // loop will still terminate correctly. 00279 while ( 00280 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label ) && 00281 ( m_index != 0 ) ) { 00282 --m_index ; 00283 } 00284 return ( tmp ) ; 00285 }
PartialCandidateItr< CandidateClass > & dchain::PartialCandidateItr< CandidateClass >::operator-- | ( | ) | [inline] |
Reimplemented in dchain::PartialItr< T >.
Definition at line 242 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::m_index, and dchain::PartialCandidateItr< CandidateClass >::m_label.
00243 { 00244 // As the index is 'unsigned' it should not go below zero. This behavior is completely 00245 // consistent with the STL reverse_iterator adaptor. (See pp254 of Musser & Saini) 00246 // 00247 if ( 0 != m_index ) { 00248 --m_index ; 00249 } 00250 // This while loop find next match to label. 00251 // The order is done for efficiency reasons. It is more likely a label 00252 // will match than the end of the list has been reached. However this 00253 // will can cause an access to an uninitiallized location, but the 00254 // loop will still terminate correctly. 00255 while ( 00256 ( (*m_indexedCandidates).labeledCandidateClass( m_index ) != m_label ) && 00257 ( m_index != 0 ) ) { 00258 --m_index ; 00259 } 00260 return ( *this ) ; 00261 }
const PartialCandidateItr< CandidateClass > & dchain::PartialCandidateItr< CandidateClass >::operator= | ( | const PartialCandidateItr< CandidateClass > & | aOtherItr | ) | [inline] |
Definition at line 188 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::index(), dchain::PartialCandidateItr< CandidateClass >::indexedCandidates(), dchain::PartialCandidateItr< CandidateClass >::label(), dchain::PartialCandidateItr< CandidateClass >::m_index, dchain::PartialCandidateItr< CandidateClass >::m_indexedCandidates, and dchain::PartialCandidateItr< CandidateClass >::m_label.
00189 { 00190 m_indexedCandidates = aOtherItr.indexedCandidates() ; 00191 m_index = aOtherItr.index() ; 00192 m_label = aOtherItr.label() ; 00193 return ( *this ) ; 00194 }
bool dchain::PartialCandidateItr< CandidateClass >::operator== | ( | const PartialCandidateItr< CandidateClass > & | aOtherItr | ) | const [inline] |
Definition at line 300 of file PartialCandidateItr.h.
References dchain::PartialCandidateItr< CandidateClass >::index(), dchain::PartialCandidateItr< CandidateClass >::indexedCandidates(), dchain::PartialCandidateItr< CandidateClass >::label(), dchain::PartialCandidateItr< CandidateClass >::m_index, dchain::PartialCandidateItr< CandidateClass >::m_indexedCandidates, and dchain::PartialCandidateItr< CandidateClass >::m_label.
00301 { 00302 // There needs to be a final test on the label as itrs with two different labels 00303 // have the same values for the past-the-end value 00304 return ( ( m_index == aOtherItr.index() ) && 00305 ( m_indexedCandidates == aOtherItr.indexedCandidates() ) && 00306 ( m_label == aOtherItr.label() ) ) ; 00307 }
friend class LabeledCandidateList< CandidateClass > [friend] |
Definition at line 50 of file PartialCandidateItr.h.
size_type dchain::PartialCandidateItr< CandidateClass >::m_index [private] |
Definition at line 107 of file PartialCandidateItr.h.
Referenced by dchain::PartialCandidateItr< CandidateClass >::index(), dchain::PartialCandidateItr< CandidateClass >::operator *(), dchain::PartialCandidateItr< CandidateClass >::operator!=(), dchain::PartialCandidateItr< CandidateClass >::operator++(), dchain::PartialCandidateItr< CandidateClass >::operator--(), dchain::PartialCandidateItr< CandidateClass >::operator=(), dchain::PartialCandidateItr< CandidateClass >::operator==(), and dchain::PartialCandidateItr< CandidateClass >::PartialCandidateItr().
IndexedLabeledCandidates< CandidateClass >* dchain::PartialCandidateItr< CandidateClass >::m_indexedCandidates [private] |
Definition at line 106 of file PartialCandidateItr.h.
Referenced by dchain::PartialCandidateItr< CandidateClass >::indexedCandidates(), dchain::PartialCandidateItr< CandidateClass >::operator!=(), dchain::PartialCandidateItr< CandidateClass >::operator=(), and dchain::PartialCandidateItr< CandidateClass >::operator==().
conjugation::Label dchain::PartialCandidateItr< CandidateClass >::m_label [private] |
Definition at line 108 of file PartialCandidateItr.h.
Referenced by dchain::PartialCandidateItr< CandidateClass >::label(), dchain::PartialCandidateItr< CandidateClass >::operator!=(), dchain::PartialCandidateItr< CandidateClass >::operator++(), dchain::PartialCandidateItr< CandidateClass >::operator--(), dchain::PartialCandidateItr< CandidateClass >::operator=(), dchain::PartialCandidateItr< CandidateClass >::operator==(), and dchain::PartialCandidateItr< CandidateClass >::PartialCandidateItr().