Bonjour, j'ai récemment développé une classe qui a pour tâche de sauvegarder des variables données telles-quel. Je m'inspire un peu de l'idée des mises en veille prolongée (ou hibernation sous Linux).
Je me demandais donc si une classe de ce genre peut-être réellement utiles, et je me réfère donc à votre avis.
Aperçu de la classe:
Comme on peut le remarquer, je me base sur un système d'id pour identifier les variables de sorte que:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class memever__{ //... public: int LoadFile(char *Filename); //charge le fichier contenant les variables et leurs valeurs int SaveFile(char *Filename); //enregistre le fichier int ClearListeVar(void); //nettoie la liste des variables... int DeleteVar(int id); //supprime une variable d'id donnée void* GetVariable(int id); //retourne un pointeur sur la variable d'id donnée (déjà alloué pour ceux qui sont depuis un fichier) template <typename T> T* SetVariable(int id, T* Ptr, size_t Nb); //Ajoute/Modifie une variable d'id donnée. Nb: pour les tableau (mettre à 1 pour simple variable) memever__(char *Filename); memever__(); }memever;
Vos avis?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #define TEST_SAVE int main(void){ #ifdef TEST_SAVE int *i = new int[4]; i[0] = 6; i[1] = 10; i[2] = 17; i[3] = 23; memever.SetVariable(2, i, 4); char *c="ma mere est la plus belle de toutes..."; memever.SetVariable(1, c, strlen(c)); memever.SaveFile("test.mem"); #else memever.LoadFile("test.mem"); int *i =(int*) memever.GetVariable(2); char *c =(char*)memever.GetVariable(1); printf("c = '%s'\n", c); printf("i[0] = %d\n", i[0]); printf("i[1] = %d\n", i[1]); printf("i[2] = %d\n", i[2]); printf("i[3] = %d\n", i[3]); #endif return 0; }
Partager