[ miličić.marko @ 01.05.2005. 13:54 ] @
Potreban savet

Imam vektor, ili bilo koji drugi kontejner objekata klase A. Objekti klase A su veoma slozeni. Cesto objekti klase A sadrze pointere na druge objekte (klase B).
Pretpostavimo da ovaj kontejner, zajedno sa nekoliko nebitnih podataka cini "dokument".

[PITANJE]: Kako da ovaj dokument posmatram kao niz bitova, da ga kao takav snimim na hadr disk, a zatim, kada se ucita dokument sa diska, jednostavno restorujem te bitove u memoriju.

[Razlog]: Ovim bi ustedeo mnogo. Kada bih pamtio pojedine atribute objekata u tekstualni fajl, a zatim pri ucitavanju rekonstruisao dokument PONOVNIM kreiranjem objekata, to bi trajalo znatno duze!

[IZVOR PROBLEMA]: Moguci izvor problema su pointeri! Dakle, kako uspostaviti veze izmenju objekata ne koristeci pointere. Pretpostavljam da bi ovo resilo problem, i da bi onda mogao da snimim binarnu sliku dokumenta u memoriju!

--
Sta bi ste Vi uradili?
[ X Files @ 01.05.2005. 18:09 ] @
To uopšte nije trivijalan problem sem ukoliko se ne koriste "3rd party"
klase/komponente neke firme od poverenja. Snimanje/Ucitavanje objekata
fiksne duzine ( sizeof(type) ) jeste trivijalno, dok je kod kontejnera stvar
naravno potpuno drugacija. Da ne govorim o slozenim kontejnerima gde i
same stavke mogu da imaju svoje objekte.

U svakom slucaju predlazem ti da prvo pregledas:

http://groups-beta.google.com/

sa upitom, na primer:

cppbuilder saving container objects

ili nesto slicno, pa da nastavimo diskusiju. Ja sam u nekim svojim programima,
gde sam pravio svoj format zapisa, koristio koktel tehnika - nikada samo jednu.

Same biblioteke jesu opremljene nekim ruralnim mehanizmima za snimanje
objekata (TStream::WriteComponent / Read/Write ComponentResFile), ali u praksi
to nije dovoljno.
[ Dragi Tata @ 01.05.2005. 18:15 ] @
http://www.boost.org/libs/serialization/doc/index.html
[ vladab @ 02.05.2005. 18:10 ] @
A ako neces da koristis te biblioteke, uvek mozes sve strukture da realizuje spomocu vektora, pa ti je pokazivac ustvari index te strukture u nizu i nikada se ne menja.
[ miličić.marko @ 02.05.2005. 19:54 ] @
Pokusacu sa ovom boost bibliotekom. Izgleda da je maksimalno profi uradjena!

Da li je neko mozda imao negativna iskustva s istom?
[ X Files @ 02.05.2005. 21:08 ] @
boost (www.boost.org) je izuzetna biblioteka ali postoje izvesni
problemi prilikom kompajliranja sa BCB. Mislim da drugi kompajleri
nemaju takve probleme. Sledeca verzija BCB-a koja ce izaci uz
Delphi bice (kako kazu) 100% prilagodjena da sazvace boost.

Evo ga jedan clanak o problemu sa BCB:
http://www.boost.org/libs/mult...compiler_specifics.html#bcb_64