//---------------------------------------------------------------------------- // EgalTech 2014-2014 //---------------------------------------------------------------------------- // File : IterManager.h Data : 23.03.14 Versione : 1.5c9 // Contenuto : Dichiarazione e implementazione della classe IterManager. // // // // Modifiche : 23.03.14 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include class GdbIterator ; class GdbObj ; //---------------------------------------------------------------------------- typedef std::list PGDBI_LIST ; //---------------------------------------------------------------------------- class IterManager { public : bool IsGdbIteratorInList( GdbIterator* pIter) { for ( auto Iter = m_IterList.cbegin() ; Iter != m_IterList.cend() ; ++ Iter) { if ( *Iter == pIter) return true ; } return false ; } bool AddGdbIterator( GdbIterator* pIter) { if ( pIter == nullptr) return false ; if ( IsGdbIteratorInList( pIter)) return true ; try { m_IterList.push_back( pIter) ; } catch (...) { return false ;} return true ; } bool RemoveGdbIterator( GdbIterator* pIter) { for ( auto Iter = m_IterList.cbegin() ; Iter != m_IterList.cend() ; ++ Iter) { if ( *Iter == pIter) { m_IterList.erase( Iter) ; return true ; } } return true ; } bool ResetObjIfSame( GdbObj* pGdbObj) ; private : PGDBI_LIST m_IterList ; } ;