JULEA
jsemantics.h
Go to the documentation of this file.
1 /*
2  * JULEA - Flexible storage framework
3  * Copyright (C) 2010-2024 Michael Kuhn
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  */
18 
23 #ifndef JULEA_SEMANTICS_H
24 #define JULEA_SEMANTICS_H
25 
26 #if !defined(JULEA_H) && !defined(JULEA_COMPILATION)
27 #error "Only <julea.h> can be included directly."
28 #endif
29 
30 #include <glib.h>
31 
32 G_BEGIN_DECLS
33 
41 {
45 };
46 
48 
53 {
60 
65 
70 
77 };
78 
79 typedef enum JSemanticsType JSemanticsType;
80 
87 {
94 
99 
106 };
107 
109 
122 {
127 
132 
139 };
140 
142 
147 {
152 
157 
162 };
163 
165 
172 {
175 };
176 
178 
179 struct JSemantics;
180 
181 typedef struct JSemantics JSemantics;
182 
194 
210 JSemantics* j_semantics_new_from_string(gchar const* template_str, gchar const* semantics_str);
211 
224 
234 void j_semantics_unref(JSemantics* semantics);
235 
236 G_DEFINE_AUTOPTR_CLEANUP_FUNC(JSemantics, j_semantics_unref)
237 
238 
251 void j_semantics_set(JSemantics* semantics, JSemanticsType key, gint value);
252 
267 gint j_semantics_get(JSemantics* semantics, JSemanticsType key);
268 
273 G_END_DECLS
274 
275 #endif
void j_semantics_unref(JSemantics *semantics)
Definition: jsemantics.c:253
JSemanticsAtomicity
Definition: jsemantics.h:87
JSemanticsType
Definition: jsemantics.h:53
JSemanticsTemplate
Definition: jsemantics.h:41
JSemanticsConsistency
Definition: jsemantics.h:122
void j_semantics_set(JSemantics *semantics, JSemanticsType key, gint value)
Definition: jsemantics.c:266
JSemantics * j_semantics_new_from_string(gchar const *template_str, gchar const *semantics_str)
Definition: jsemantics.c:110
JSemantics * j_semantics_new(JSemanticsTemplate template_)
Definition: jsemantics.c:72
JSemanticsSecurity
Definition: jsemantics.h:172
JSemantics * j_semantics_ref(JSemantics *semantics)
Definition: jsemantics.c:236
JSemanticsPersistency
Definition: jsemantics.h:147
gint j_semantics_get(JSemantics *semantics, JSemanticsType key)
Definition: jsemantics.c:293
@ J_SEMANTICS_ATOMICITY_BATCH
Definition: jsemantics.h:93
@ J_SEMANTICS_ATOMICITY_NONE
Definition: jsemantics.h:105
@ J_SEMANTICS_ATOMICITY_OPERATION
Definition: jsemantics.h:98
@ J_SEMANTICS_SECURITY
Definition: jsemantics.h:76
@ J_SEMANTICS_PERSISTENCY
Definition: jsemantics.h:69
@ J_SEMANTICS_ATOMICITY
Definition: jsemantics.h:59
@ J_SEMANTICS_CONSISTENCY
Definition: jsemantics.h:64
@ J_SEMANTICS_TEMPLATE_POSIX
Definition: jsemantics.h:43
@ J_SEMANTICS_TEMPLATE_DEFAULT
Definition: jsemantics.h:42
@ J_SEMANTICS_TEMPLATE_TEMPORARY_LOCAL
Definition: jsemantics.h:44
@ J_SEMANTICS_CONSISTENCY_EVENTUAL
Definition: jsemantics.h:138
@ J_SEMANTICS_CONSISTENCY_IMMEDIATE
Definition: jsemantics.h:126
@ J_SEMANTICS_CONSISTENCY_SESSION
Definition: jsemantics.h:131
@ J_SEMANTICS_SECURITY_NONE
Definition: jsemantics.h:174
@ J_SEMANTICS_SECURITY_STRICT
Definition: jsemantics.h:173
@ J_SEMANTICS_PERSISTENCY_STORAGE
Definition: jsemantics.h:151
@ J_SEMANTICS_PERSISTENCY_NONE
Definition: jsemantics.h:161
@ J_SEMANTICS_PERSISTENCY_NETWORK
Definition: jsemantics.h:156
Definition: jsemantics.c:42