Stiamo implementando un programma CAD (in C ++, Qt) dove abbiamo classi interdipendenti: Il mattone più piccolo è il Pattern , è solo una distribuzione di punti. Poi abbiamo Layout che contengono Pattern ad una determinata altezza (z = costante). E infine Stacks , che sono un impilamento di Layout.
Tutte queste entità hanno un ID univoco e possono anche avere un elenco di maschere a cui sono applicate.
Sapendo che ciascuna delle classi è collegata ( std :: vettore di puntatori ovunque ) da una struttura ad albero , quale sarebbe il modo migliore per salvare un progetto che contenga diversi stack? L'obiettivo del salvataggio sarebbe caricare in seguito il progetto e modificarlo.
Abbiamo già esaminato Serializzazione Boost e Qt , ma mi sembra che la serializzazione binaria possa essere troppo per ciò che vogliamo fare (dato che ha bisogno di tempo per essere integrato). D'altra parte abbiamo pensato a una serializzazione XML / JSON , con qualcosa che sarebbe simile a questo:
<Layout>
<id> 12</id>
<z> 0</z>
<patterns>
<pattern id> pattern0</pattern id>
<pattern id> pattern1</pattern id>
</patterns>
</Layout>
Sono in qualche altro modo? Quale sarebbe la migliore e perché? Manchiamo di obiettività su questo punto.