annotate libcore/core/save.h @ 164:87f8ef73a160

doc: some fixes
author David Demelier <markand@malikania.fr>
date Sun, 18 Oct 2020 17:26:39 +0200
parents 789b23e01f52
children 6250883b81f0
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
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #ifndef MOLKO_SAVE_H
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #define MOLKO_SAVE_H
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.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 #include <stdbool.h>
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
28
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 * \brief Max property value.
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 #define SAVE_PROPERTY_VALUE_MAX 1024
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
33
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 * Open a database by index.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 * 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
38 * 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
39 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 * \param idx the save slot
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 * \return false on error
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 bool
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 save_open(unsigned int idx);
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 * Open the save slot specified by path.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 * \pre path != NULL
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 * \param path the path to the save slot
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 * \return false on error
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 bool
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 save_open_path(const char *path);
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
55
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 * Sets an arbitrary property.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 * If the property already exists, replace it.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 * \pre key != NULL
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 * \pre value != NULL && strlen(value) <= SAVE_PROPERTY_VALUE_MAX
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 * \param key the property key
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 * \param value the property value
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 bool
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 save_set_property(const char *key, const char *value);
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 * Get a property.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 * \pre key != NULL
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 * \param key the property key
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 * \return the key or NULL if not found
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 const char *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 save_get_property(const char *key);
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 /**
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 * Remove a property.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 *
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 * \pre key != NULL
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 * \param key the property key
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 * \return false on error
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 bool
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 save_remove_property(const char *key);
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
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 * Close the save slot.
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 */
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 void
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 save_finish(void);
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
94
a6c2067709ce core: implement basic save routines, closes #2476 @2h
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 #endif /* !MOLKO_SAVE_H */