ciao.
ho un insieme di classi che eredintano da una classe base che hanno questa funzione(l'implementazione della funzione varia a secondo della classe:
codice:
bool CProductDefinitionShapeIfc::GetData(wstring tag, wstring value, int pos, CBaseIfc** pIfcValue)
{
if(!m_bHasData)
return true;
//il tag di apertura è uguale al tag di chiusura = fine classe
if(tag.compare(getType())==0)
{
m_bHasData = false;
return false;
}
if(tag.compare(L"Name") == 0 && m_Name.compare(L"")==0)
m_Name = value;
else if(tag.compare(L"Description") == 0)
m_Description = value;
if(tag.compare(L"IfcShapeRepresentation") == 0)
m_ShapeRepresentation[pos] =(CShapeRepresentation*) pIfcValue;
return true;
};
ho un ciclo che scorre un xml con sax e mi ritorna i valori a questo punto chiamo la gedata:
codice:
for(int i = 0 ; to fine xml)
ClasseCorrente->GetData(wstring tag, wstring value, int pos, CBaseIfc** pIfcValue)
in pratica in questo modo carico le mie classi coi dati.
quando ho completato di caricare la classe coi dati metto la classe in una mappa con un indice univoco per dopo:
codice:
for(int i = 0 ; to fine xml)
ClasseCorrente->GetData(wstring tag, wstring value, int pos, CBaseIfc** pIfcValue)
mappa_Oggetti[indiceunivoco]=ClasseCorrente
Nell'applicazione ho un insieme di tag con un ref o un id all id corrispondono i ref e viceversa.
quando trovo un indice univoco ref estraggo dalla mappa l'indirizzo dell' id relazionato e vorrei assegnare al ref un altro indirizzo , quello della classe relazionata in modo da andare a "riempire" il ref con l'id , vorrei utilizzare se possibile un sistema con gli indirizzi e non i valori.
magari con un indirizzo ad un indirizzo **?ma non ci salto fuori.
E' possibile?
Grazie.