vmunier/CPP_vmunier_hbassino — Issue #5: Table des adresses
Author: vmunier
Created: 2011-12-09 16:38:06+00:00
State: open

On va créer une table des adresses de manière à savoir, étant donné une adresse, si l'objet situé à cette adresse a déjà été sérialisé et de façon à remplacer dans la sérialisation les adresses mémoires par des indices.
(Normalement la clef doit être une adresse et un type mais pour l'instant la clef n'est qu'une adresse)

Algo d'utilisation de la table des adresses :
Si j'ai un pointeur :
je regarde l'adresse de l'objet vers lequel il pointe :
si elle existe déjà dans la map alors j'écris l'id de la map.
sinon je sérialise l'objet vers lequel il pointe et stocke l'adresse dans la
map, soit le pointeur lui même.
Sinon (ce n'est pas un pointeur) :
je regarde si l'adresse de l'objet existe dans la table (car l'utilisateur a
pu d'abord sauvegardé l'objet via un pointeur puis maintenant l'objet vers
lequel il pointe)
Si oui : j'écris l'id de la map
Sinon je sérialise l'objet et stocke l'adresse de l'objet.