Page suivante
Page précédente
Table des matières
Chaque objet (au sens Java) qui doit être sauvegardé (tout ou partiellement)
doit 'implémenter' l'interface suivante (Persistent)~:
- public void load(java.io.InputStream is) throws java.io.IOException;
- public void save(java.io.OutputStream os) throws java.io.IOException;
La méthode load() est utilisée pour restaurer les données. La méthode save()
est utilisée pour sauver les données courantes. Les flux sont utilisés pour
obtenir du code générique (ils peuvent signifier des fichiers, la mémoire, une
base de données, etc).
Une IOException peut être lancée si quelque chose d'inattendu arrive.
Le chef d'orchestre de la sauvegarde et du chargement est un objet de la classe
Persistence qui propose l'interface suivante~:
- public void load( long time) throws java.lang.SecurityException, java.io.IOException
- public void save( long time) throws java.lang.SecurityException, java.io.IOException
- public void save() throws java.lang.SecurityException, java.io.IOException
La méthode load(long time) permet de recharger les données qui étaient valides à
l'instant 'time'. Les méthodes save(long time) et save() permettent
respectivement de sauver les données en utilisant comme marqueur temporel
l'instant courant ou un instant 'time' spécifié.
Les trois méthodes sont susceptibles de rencontrer des erreurs de lecture/écriture
ou de sécurité (lecture impossible, écriture impossible, etc).
Le marqueur temporel permet de différencier les sauvegardes~:
- pour des fichiers, nom_du_fichier.marqueur (ex.~: random.123, world.123,
passwd.123, etc),
- pour une base de données, le marqueur peut servir de clé primaire,
- pour une zone mémoire, le marqueur permet de calculer l'emplacement des
données,
- etc.
Page suivante
Page précédente
Table des matières