Coverage Report

Created: 2025-07-11 06:11

/src/openvswitch/lib/ovsdb-server-idl.h
Line
Count
Source (jump to first uncovered line)
1
/* Generated automatically -- do not modify!    -*- buffer-read-only: t -*- */
2
3
#ifndef SERVERREC_IDL_HEADER
4
#define SERVERREC_IDL_HEADER 1
5
6
#include <stdbool.h>
7
#include <stddef.h>
8
#include <stdint.h>
9
#include "openvswitch/json.h"
10
#include "ovsdb-data.h"
11
#include "ovsdb-idl-provider.h"
12
#include "smap.h"
13
#include "uuid.h"
14
15
#ifdef  __cplusplus
16
extern "C" {
17
#endif
18
19
struct ovsdb_type;
20
21

22
/* Database table. */
23
struct serverrec_database {
24
  struct ovsdb_idl_row header_;
25
26
  /* cid column. */
27
  struct uuid *cid;
28
  size_t n_cid;
29
30
  /* connected column. */
31
  bool connected;
32
33
  /* index column. */
34
  int64_t *index;
35
  size_t n_index;
36
37
  /* leader column. */
38
  bool leader;
39
40
  /* model column. */
41
  char *model;  /* Always nonnull. */
42
43
  /* name column. */
44
  char *name; /* Always nonnull. */
45
46
  /* schema column. */
47
  char *schema;
48
49
  /* sid column. */
50
  struct uuid *sid;
51
  size_t n_sid;
52
};
53
54
enum serverrec_database_column_id {
55
    SERVERREC_DATABASE_COL_CID,
56
    SERVERREC_DATABASE_COL_CONNECTED,
57
    SERVERREC_DATABASE_COL_INDEX,
58
    SERVERREC_DATABASE_COL_LEADER,
59
    SERVERREC_DATABASE_COL_MODEL,
60
    SERVERREC_DATABASE_COL_NAME,
61
    SERVERREC_DATABASE_COL_SCHEMA,
62
    SERVERREC_DATABASE_COL_SID,
63
    SERVERREC_DATABASE_N_COLUMNS
64
};
65
66
#define serverrec_database_col_cid (serverrec_database_columns[SERVERREC_DATABASE_COL_CID])
67
#define serverrec_database_col_connected (serverrec_database_columns[SERVERREC_DATABASE_COL_CONNECTED])
68
#define serverrec_database_col_index (serverrec_database_columns[SERVERREC_DATABASE_COL_INDEX])
69
#define serverrec_database_col_leader (serverrec_database_columns[SERVERREC_DATABASE_COL_LEADER])
70
#define serverrec_database_col_model (serverrec_database_columns[SERVERREC_DATABASE_COL_MODEL])
71
#define serverrec_database_col_name (serverrec_database_columns[SERVERREC_DATABASE_COL_NAME])
72
#define serverrec_database_col_schema (serverrec_database_columns[SERVERREC_DATABASE_COL_SCHEMA])
73
#define serverrec_database_col_sid (serverrec_database_columns[SERVERREC_DATABASE_COL_SID])
74
75
extern struct ovsdb_idl_column serverrec_database_columns[SERVERREC_DATABASE_N_COLUMNS];
76
bool serverrec_server_has_database_table_col_cid(const struct ovsdb_idl *); 
77
const struct ovsdb_type *serverrec_database_cid_server_type(const struct ovsdb_idl *); 
78
bool serverrec_server_has_database_table_col_connected(const struct ovsdb_idl *); 
79
const struct ovsdb_type *serverrec_database_connected_server_type(const struct ovsdb_idl *); 
80
bool serverrec_server_has_database_table_col_index(const struct ovsdb_idl *); 
81
const struct ovsdb_type *serverrec_database_index_server_type(const struct ovsdb_idl *); 
82
bool serverrec_server_has_database_table_col_leader(const struct ovsdb_idl *); 
83
const struct ovsdb_type *serverrec_database_leader_server_type(const struct ovsdb_idl *); 
84
bool serverrec_server_has_database_table_col_model(const struct ovsdb_idl *); 
85
const struct ovsdb_type *serverrec_database_model_server_type(const struct ovsdb_idl *); 
86
bool serverrec_server_has_database_table_col_name(const struct ovsdb_idl *); 
87
const struct ovsdb_type *serverrec_database_name_server_type(const struct ovsdb_idl *); 
88
bool serverrec_server_has_database_table_col_schema(const struct ovsdb_idl *); 
89
const struct ovsdb_type *serverrec_database_schema_server_type(const struct ovsdb_idl *); 
90
bool serverrec_server_has_database_table_col_sid(const struct ovsdb_idl *); 
91
const struct ovsdb_type *serverrec_database_sid_server_type(const struct ovsdb_idl *); 
92
93
bool serverrec_server_has_database_table(const struct ovsdb_idl *);
94
const struct serverrec_database_table *serverrec_database_table_get(const struct ovsdb_idl *);
95
const struct serverrec_database *serverrec_database_table_first(const struct serverrec_database_table *);
96
97
#define SERVERREC_DATABASE_TABLE_FOR_EACH(ROW, TABLE) \
98
        for ((ROW) = serverrec_database_table_first(TABLE); \
99
             (ROW); \
100
             (ROW) = serverrec_database_next(ROW))
101
#define SERVERREC_DATABASE_TABLE_FOR_EACH_SAFE_LONG(ROW, NEXT, TABLE) \
102
        for ((ROW) = serverrec_database_table_first(TABLE); \
103
             (ROW) ? ((NEXT) = serverrec_database_next(ROW), 1) : 0; \
104
             (ROW) = (NEXT))
105
#define SERVERREC_DATABASE_TABLE_FOR_EACH_SAFE_SHORT(ROW, TABLE) \
106
        for (const struct serverrec_database * ROW__next = ((ROW) = serverrec_database_table_first(TABLE), NULL); \
107
             (ROW) ? (ROW__next = serverrec_database_next(ROW), 1) : (ROW__next = NULL, 0); \
108
             (ROW) = ROW__next)
109
#define SERVERREC_DATABASE_TABLE_FOR_EACH_SAFE(...)                                        \
110
        OVERLOAD_SAFE_MACRO(SERVERREC_DATABASE_TABLE_FOR_EACH_SAFE_LONG,                   \
111
                            SERVERREC_DATABASE_TABLE_FOR_EACH_SAFE_SHORT, 3, __VA_ARGS__)
112
113
114
const struct serverrec_database *serverrec_database_get_for_uuid(const struct ovsdb_idl *, const struct uuid *);
115
const struct serverrec_database *serverrec_database_table_get_for_uuid(const struct serverrec_database_table *, const struct uuid *);
116
const struct serverrec_database *serverrec_database_first(const struct ovsdb_idl *);
117
const struct serverrec_database *serverrec_database_next(const struct serverrec_database *);
118
#define SERVERREC_DATABASE_FOR_EACH(ROW, IDL) \
119
        for ((ROW) = serverrec_database_first(IDL); \
120
             (ROW); \
121
             (ROW) = serverrec_database_next(ROW))
122
#define SERVERREC_DATABASE_FOR_EACH_SAFE_LONG(ROW, NEXT, IDL) \
123
        for ((ROW) = serverrec_database_first(IDL); \
124
             (ROW) ? ((NEXT) = serverrec_database_next(ROW), 1) : 0; \
125
             (ROW) = (NEXT))
126
#define SERVERREC_DATABASE_FOR_EACH_SAFE_SHORT(ROW, IDL) \
127
        for (const struct serverrec_database * ROW__next = ((ROW) = serverrec_database_first(IDL), NULL); \
128
             (ROW) ? (ROW__next = serverrec_database_next(ROW), 1) : (ROW__next = NULL, 0); \
129
             (ROW) = ROW__next)
130
#define SERVERREC_DATABASE_FOR_EACH_SAFE(...)                                         \
131
        OVERLOAD_SAFE_MACRO(SERVERREC_DATABASE_FOR_EACH_SAFE_LONG,                    \
132
                            SERVERREC_DATABASE_FOR_EACH_SAFE_SHORT, 3, __VA_ARGS__)
133
134
unsigned int serverrec_database_get_seqno(const struct ovsdb_idl *);
135
unsigned int serverrec_database_row_get_seqno(const struct serverrec_database *row, enum ovsdb_idl_change change);
136
const struct serverrec_database *serverrec_database_track_get_first(const struct ovsdb_idl *);
137
const struct serverrec_database *serverrec_database_track_get_next(const struct serverrec_database *);
138
#define SERVERREC_DATABASE_FOR_EACH_TRACKED(ROW, IDL) \
139
        for ((ROW) = serverrec_database_track_get_first(IDL); \
140
             (ROW); \
141
             (ROW) = serverrec_database_track_get_next(ROW))
142
143
const struct serverrec_database *serverrec_database_table_track_get_first(const struct serverrec_database_table *);
144
#define SERVERREC_DATABASE_TABLE_FOR_EACH_TRACKED(ROW, TABLE) \
145
        for ((ROW) = serverrec_database_table_track_get_first(TABLE); \
146
             (ROW); \
147
             (ROW) = serverrec_database_track_get_next(ROW))
148
149
150
/* Returns true if 'row' was inserted since the last change tracking reset.
151
 *
152
 * Note: This can only be used to test rows of tracked changes. This cannot be
153
 * used to test if an uncommitted row that has been added locally is new or it
154
 * may given unexpected results. */
155
static inline bool serverrec_database_is_new(const struct serverrec_database *row)
156
0
{
157
0
    return serverrec_database_row_get_seqno(row, OVSDB_IDL_CHANGE_INSERT) > 0;
158
0
}
159
160
/* Returns true if 'row' was deleted since the last change tracking reset.
161
 *
162
 * Note: This can only be used to test rows of tracked changes. This cannot be
163
 * used to test if an uncommitted row that has been added locally has been
164
 * deleted or it may given unexpected results. */
165
static inline bool serverrec_database_is_deleted(const struct serverrec_database *row)
166
0
{
167
0
    return serverrec_database_row_get_seqno(row, OVSDB_IDL_CHANGE_DELETE) > 0;
168
0
}
169
170
void serverrec_database_index_destroy_row(const struct serverrec_database *);
171
172
struct serverrec_database *serverrec_database_index_find(struct ovsdb_idl_index *, const struct serverrec_database *);
173
174
int serverrec_database_index_compare(
175
    struct ovsdb_idl_index *, 
176
    const struct serverrec_database *, 
177
    const struct serverrec_database *);
178
struct ovsdb_idl_cursor serverrec_database_cursor_first(struct ovsdb_idl_index *);
179
struct ovsdb_idl_cursor serverrec_database_cursor_first_eq(
180
    struct ovsdb_idl_index *, const struct serverrec_database *);
181
struct ovsdb_idl_cursor serverrec_database_cursor_first_ge(
182
    struct ovsdb_idl_index *, const struct serverrec_database *);
183
184
struct serverrec_database *serverrec_database_cursor_data(struct ovsdb_idl_cursor *);
185
186
#define SERVERREC_DATABASE_FOR_EACH_RANGE(ROW, FROM, TO, INDEX) \
187
        for (struct ovsdb_idl_cursor cursor__ = serverrec_database_cursor_first_ge(INDEX, FROM); \
188
             (cursor__.position \
189
              && ((ROW) = serverrec_database_cursor_data(&cursor__), \
190
                  !(TO) || serverrec_database_index_compare(INDEX, ROW, TO) <= 0)); \
191
             ovsdb_idl_cursor_next(&cursor__))
192
#define SERVERREC_DATABASE_FOR_EACH_EQUAL(ROW, KEY, INDEX) \
193
        for (struct ovsdb_idl_cursor cursor__ = serverrec_database_cursor_first_eq(INDEX, KEY); \
194
             (cursor__.position \
195
              ? ((ROW) = serverrec_database_cursor_data(&cursor__), \
196
                 ovsdb_idl_cursor_next_eq(&cursor__), \
197
                 true) \
198
              : false); \
199
            )
200
#define SERVERREC_DATABASE_FOR_EACH_BYINDEX(ROW, INDEX) \
201
        for (struct ovsdb_idl_cursor cursor__ = serverrec_database_cursor_first(INDEX); \
202
             (cursor__.position \
203
              ? ((ROW) = serverrec_database_cursor_data(&cursor__), \
204
                 ovsdb_idl_cursor_next(&cursor__), \
205
                 true) \
206
              : false); \
207
            )
208
209
void serverrec_database_init(struct serverrec_database *);
210
void serverrec_database_delete(const struct serverrec_database *);
211
struct serverrec_database *serverrec_database_insert(struct ovsdb_idl_txn *);
212
struct serverrec_database *serverrec_database_insert_persist_uuid(
213
    struct ovsdb_idl_txn *txn, const struct uuid *uuid);
214
215
/* Returns true if the tracked column referenced by 'enum serverrec_database_column_id' of
216
 * the row referenced by 'struct serverrec_database *' was updated since the last change
217
 * tracking reset.
218
 *
219
 * Note: This can only be used to test rows of tracked changes. This cannot be
220
 * used to test if an uncommitted row that has been added locally has been
221
 * updated or it may given unexpected results. */
222
bool serverrec_database_is_updated(const struct serverrec_database *, enum serverrec_database_column_id);
223
224
void serverrec_database_verify_cid(const struct serverrec_database *);
225
void serverrec_database_verify_connected(const struct serverrec_database *);
226
void serverrec_database_verify_index(const struct serverrec_database *);
227
void serverrec_database_verify_leader(const struct serverrec_database *);
228
void serverrec_database_verify_model(const struct serverrec_database *);
229
void serverrec_database_verify_name(const struct serverrec_database *);
230
void serverrec_database_verify_schema(const struct serverrec_database *);
231
void serverrec_database_verify_sid(const struct serverrec_database *);
232
233
const struct ovsdb_datum *serverrec_database_get_cid(const struct serverrec_database *, enum ovsdb_atomic_type key_type);
234
const struct ovsdb_datum *serverrec_database_get_connected(const struct serverrec_database *, enum ovsdb_atomic_type key_type);
235
const struct ovsdb_datum *serverrec_database_get_index(const struct serverrec_database *, enum ovsdb_atomic_type key_type);
236
const struct ovsdb_datum *serverrec_database_get_leader(const struct serverrec_database *, enum ovsdb_atomic_type key_type);
237
const struct ovsdb_datum *serverrec_database_get_model(const struct serverrec_database *, enum ovsdb_atomic_type key_type);
238
const struct ovsdb_datum *serverrec_database_get_name(const struct serverrec_database *, enum ovsdb_atomic_type key_type);
239
const struct ovsdb_datum *serverrec_database_get_schema(const struct serverrec_database *, enum ovsdb_atomic_type key_type);
240
const struct ovsdb_datum *serverrec_database_get_sid(const struct serverrec_database *, enum ovsdb_atomic_type key_type);
241
242
void serverrec_database_set_cid(const struct serverrec_database *, const struct uuid *cid, size_t n_cid);
243
void serverrec_database_set_connected(const struct serverrec_database *, bool connected);
244
void serverrec_database_set_index(const struct serverrec_database *, const int64_t *index, size_t n_index);
245
void serverrec_database_set_leader(const struct serverrec_database *, bool leader);
246
void serverrec_database_set_model(const struct serverrec_database *, const char *model);
247
void serverrec_database_set_name(const struct serverrec_database *, const char *name);
248
void serverrec_database_set_schema(const struct serverrec_database *, const char *schema);
249
void serverrec_database_set_sid(const struct serverrec_database *, const struct uuid *sid, size_t n_sid);
250
251
void serverrec_database_update_cid_addvalue(const struct serverrec_database *,  struct uuid );
252
void serverrec_database_update_cid_delvalue(const struct serverrec_database *,  struct uuid );
253
void serverrec_database_add_clause_cid(struct ovsdb_idl_condition *, enum ovsdb_function function, const struct uuid *cid, size_t n_cid);
254
unsigned int serverrec_database_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);
255
void serverrec_database_add_clause_connected(struct ovsdb_idl_condition *, enum ovsdb_function function, bool connected);
256
unsigned int serverrec_database_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);
257
void serverrec_database_update_index_addvalue(const struct serverrec_database *,  int64_t );
258
void serverrec_database_update_index_delvalue(const struct serverrec_database *,  int64_t );
259
void serverrec_database_add_clause_index(struct ovsdb_idl_condition *, enum ovsdb_function function, const int64_t *index, size_t n_index);
260
unsigned int serverrec_database_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);
261
void serverrec_database_add_clause_leader(struct ovsdb_idl_condition *, enum ovsdb_function function, bool leader);
262
unsigned int serverrec_database_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);
263
void serverrec_database_add_clause_model(struct ovsdb_idl_condition *, enum ovsdb_function function, const char *model);
264
unsigned int serverrec_database_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);
265
void serverrec_database_add_clause_name(struct ovsdb_idl_condition *, enum ovsdb_function function, const char *name);
266
unsigned int serverrec_database_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);
267
void serverrec_database_update_schema_addvalue(const struct serverrec_database *,  const char *);
268
void serverrec_database_update_schema_delvalue(const struct serverrec_database *,  const char *);
269
void serverrec_database_add_clause_schema(struct ovsdb_idl_condition *, enum ovsdb_function function, const char *schema);
270
unsigned int serverrec_database_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);
271
void serverrec_database_update_sid_addvalue(const struct serverrec_database *,  struct uuid );
272
void serverrec_database_update_sid_delvalue(const struct serverrec_database *,  struct uuid );
273
void serverrec_database_add_clause_sid(struct ovsdb_idl_condition *, enum ovsdb_function function, const struct uuid *sid, size_t n_sid);
274
unsigned int serverrec_database_set_condition(struct ovsdb_idl *, struct ovsdb_idl_condition *);
275
276
struct serverrec_database *serverrec_database_index_init_row(struct ovsdb_idl_index *);
277
void serverrec_database_index_set_cid(const struct serverrec_database *,
278
const struct uuid *cid, size_t n_cid);
279
void serverrec_database_index_set_connected(const struct serverrec_database *,
280
bool connected);
281
void serverrec_database_index_set_index(const struct serverrec_database *,
282
const int64_t *index, size_t n_index);
283
void serverrec_database_index_set_leader(const struct serverrec_database *,
284
bool leader);
285
void serverrec_database_index_set_model(const struct serverrec_database *,
286
const char *model);
287
void serverrec_database_index_set_name(const struct serverrec_database *,
288
const char *name);
289
void serverrec_database_index_set_schema(const struct serverrec_database *,
290
const char *schema);
291
void serverrec_database_index_set_sid(const struct serverrec_database *,
292
const struct uuid *sid, size_t n_sid);
293
294
enum serverrec_table_id {
295
    SERVERREC_TABLE_DATABASE,
296
    SERVERREC_N_TABLES
297
};
298
299
#define serverrec_table_database (serverrec_table_classes[SERVERREC_TABLE_DATABASE])
300
301
extern struct ovsdb_idl_table_class serverrec_table_classes[SERVERREC_N_TABLES];
302
303
extern struct ovsdb_idl_class serverrec_idl_class;
304
305
const char * serverrec_get_db_version(void);
306
307
#ifdef  __cplusplus
308
}
309
#endif
310
311
#endif /* SERVERREC_IDL_HEADER */