033236491d
- gestione cancellazione oggetti puntati da GdbIterator - aggiunte a GdbIterator EraseAndGoToNext e EraseAndGoToPrev - possibilità di passare IGeomDB* al costruttore di GdbIterator.
57 lines
1.9 KiB
C++
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 ;
|
|
} ;
|