CSeq_entry_CI& CSeq_entry_CI::operator ++(void) { do { x_Next(); } while ((*this) && !x_ValidType()); return *this; }
bool CSeqMap_CI::x_SettleNext(void) { while ( !x_Found() && GetPosition() < m_SearchEnd ) { if ( !x_Next() ) return false; } return true; }
void CSeq_entry_CI::x_Initialize(const CBioseq_set_Handle& seqset) { if ( seqset ) { m_Parent = seqset; m_Iterator = seqset.x_GetInfo().GetSeq_set().begin(); x_SetCurrentEntry(); while ((*this) && !x_ValidType()) { x_Next(); } } }
CSeq_entry_CI::CSeq_entry_CI(const CSeq_entry_Handle& entry, TFlags flags, CSeq_entry::E_Choice type_filter ) : m_Flags(flags), m_Filter(type_filter) { if ( m_Flags & fIncludeGivenEntry ) { m_Current = entry; while ((*this) && !x_ValidType()) { x_Next(); } } else { if ( entry.IsSet() ) { x_Initialize( entry.GetSet() ); } } }
bool CSeqMap_CI::Next(bool resolveCurrentExternal) { return x_Next(resolveCurrentExternal && m_Selector.CanResolve()) && x_SettleNext(); }
inline bool CSeqMap_CI::x_Next(void) { return x_Next(m_Selector.CanResolve()); }