Files
EgtGeomKernel/IterManager.h
T
Dario Sassi 033236491d EgtGeomKernel :
- gestione cancellazione oggetti puntati da GdbIterator
- aggiunte a GdbIterator EraseAndGoToNext e EraseAndGoToPrev
- possibilità di passare IGeomDB* al costruttore di GdbIterator.
2014-03-23 21:38:09 +00:00

57 lines
1.9 KiB
C++

//----------------------------------------------------------------------------
// 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 <list>
class GdbIterator ;
class GdbObj ;
//----------------------------------------------------------------------------
typedef std::list<GdbIterator*> PGDBI_LIST ;
//----------------------------------------------------------------------------
class IterManager
{
public :
bool IsGdbIteratorInList( GdbIterator* pIter)
{ PGDBI_LIST::const_iterator Iter ;
for ( Iter = m_IterList.begin() ; Iter != m_IterList.end() ; ++ 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)
{ PGDBI_LIST::iterator Iter ;
for ( Iter = m_IterList.begin() ; Iter != m_IterList.end() ; ++ Iter) {
if ( *Iter == pIter) {
m_IterList.erase( Iter) ;
return true ;
}
}
return true ; }
bool ResetObjIfSame( GdbObj* pGdbObj) ;
private :
PGDBI_LIST m_IterList ;
} ;