Coverage Report

Created: 2025-07-01 06:50

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