annotate libmlk-core/core/save.h @ 243:71b3b7036de7

misc: lot of cleanups, - prefix libraries with libmlk, - move assets from source directories closes #2520, - prefix header guards closes #2519
author David Demelier <markand@malikania.fr>
date Sat, 28 Nov 2020 22:37:30 +0100
parents libcore/core/save.h@dd7c8d4321a3
children c4da052c0def
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * save.h -- save functions
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2020 David Demelier <markand@malikania.fr>
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
243
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
19 #ifndef MOLKO_CORE_SAVE_H
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
20 #define MOLKO_CORE_SAVE_H
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 * \file save.h
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 * \brief Save functions.
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
25 *
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
26 * This module provides several functions to save the game data into a database.
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
27 *
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
28 * Database can be opened in read only mode (\ref SAVE_MODE_READ) which will
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
29 * return an error if not present or write mode (\ref SAVE_MODE_WRITE) which
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
30 * will create and initialize a database if not present on disk.
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
32
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 #include <stdbool.h>
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
34 #include <time.h>
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
35
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
36 /**
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
37 * \brief Max property key.
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
38 */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
39 #define SAVE_PROPERTY_KEY_MAX (64)
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
40
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 * \brief Max property value.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 */
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
44 #define SAVE_PROPERTY_VALUE_MAX (1024)
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
45
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
46 /**
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
47 * \brief Save database handle.
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
48 */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
49 struct save {
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
50 time_t created; /*!< (-) Date when the save was created. */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
51 time_t updated; /*!< (-) Date when it was last updated. */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
52 void *handle; /*!< (*) Private handle. */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
53 };
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
54
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
55 /**
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
56 * \brief Open mode.
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
57 */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
58 enum save_mode {
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
59 SAVE_MODE_READ, /*!< Only try to read (no creation). */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
60 SAVE_MODE_WRITE /*!< Open for both reading and writing */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
61 };
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
62
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
63 /**
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
64 * \brief Mapping for the property table.
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
65 */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
66 struct save_property {
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
67 /**
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
68 * (+) Property key to set.
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
69 */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
70 char key[SAVE_PROPERTY_KEY_MAX + 1];
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
71
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
72 /**
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
73 * (+) Property value to set.
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
74 */
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
75 char value[SAVE_PROPERTY_VALUE_MAX + 1];
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
76 };
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 * Open a database by index.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 * This function use the preferred path to store local files under the user
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 * home directory. The parameter idx specifies the save slot to use.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 *
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
84 * \pre db != NULL
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
85 * \param db the database to initialize
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 * \param idx the save slot
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
87 * \param mode the mode
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
88 * \return False on error.
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 bool
226
dd7c8d4321a3 misc: miscellaneous cleanups
David Demelier <markand@malikania.fr>
parents: 172
diff changeset
91 save_open(struct save *db, unsigned int idx, enum save_mode mode);
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
92
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 * Open the save slot specified by path.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 *
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
96 * \pre db != NULL
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 * \pre path != NULL
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
98 * \param db the database to initialize
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 * \param path the path to the save slot
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
100 * \param mode the mode
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
101 * \return False on error.
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 bool
226
dd7c8d4321a3 misc: miscellaneous cleanups
David Demelier <markand@malikania.fr>
parents: 172
diff changeset
104 save_open_path(struct save *db, const char *path, enum save_mode mode);
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
105
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
107 * Sets an arbitrary property.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 * If the property already exists, replace it.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 *
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
111 * \pre db != NULL
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
112 * \pre prop != NULL
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
113 * \param db the database
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
114 * \param prop the property to set
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
115 * \return False on error.
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 bool
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
118 save_set_property(struct save *db, const struct save_property *prop);
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
119
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 * Get a property.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 *
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
123 * Call this function by setting prop->key to the desired key to get.
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
124 *
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
125 * \pre db != NULL
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
126 * \param db the database
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
127 * \param prop the property to retrieve
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
128 * \return False on error and prop->value is left untouched
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 */
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
130 bool
226
dd7c8d4321a3 misc: miscellaneous cleanups
David Demelier <markand@malikania.fr>
parents: 172
diff changeset
131 save_get_property(struct save *db, struct save_property *prop);
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
132
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 * Remove a property.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 *
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
136 * \pre db != NULL
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
137 * \pre prop != NULL
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
138 * \param db the database
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
139 * \param prop the property to remove
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 * \return false on error
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
141 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 bool
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
143 save_remove_property(struct save *db, const struct save_property *prop);
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
144
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 * Close the save slot.
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
147 *
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
148 * \pre db != NULL
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
149 * \param db the database to close
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
150 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 void
172
6250883b81f0 core: improve save module, closes #2507
David Demelier <markand@malikania.fr>
parents: 121
diff changeset
152 save_finish(struct save *db);
84
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
153
243
71b3b7036de7 misc: lot of cleanups,
David Demelier <markand@malikania.fr>
parents: 226
diff changeset
154 #endif /* !MOLKO_CORE_SAVE_H */