summaryrefslogtreecommitdiff
path: root/lib/ovsdb-types.h
diff options
context:
space:
mode:
authorYifeng Sun <pkusunyifeng@gmail.com>2018-10-04 12:42:21 -0700
committerBen Pfaff <blp@ovn.org>2018-10-04 13:29:53 -0700
commitf70ac90db00cf1fcf0471f277468cd6bdc67a1d7 (patch)
tree62bd37bae60ef2c9b538fc2a5735249c94fc6ac1 /lib/ovsdb-types.h
parentf827c57486fc76f7b02fcd908640f63e0ffdf22a (diff)
downloadopenvswitch-f70ac90db00cf1fcf0471f277468cd6bdc67a1d7.tar.gz
ovsdb-types: Refactor structs so as to comply with C++ standard
C++ standard only accepts anonymous struct inside anonymous union. This patch re-organized the structs so that this header file can be used in C++ source files. Signed-off-by: Yifeng Sun <pkusunyifeng@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
Diffstat (limited to 'lib/ovsdb-types.h')
-rw-r--r--lib/ovsdb-types.h46
1 files changed, 25 insertions, 21 deletions
diff --git a/lib/ovsdb-types.h b/lib/ovsdb-types.h
index 368c41617..b9eb0928d 100644
--- a/lib/ovsdb-types.h
+++ b/lib/ovsdb-types.h
@@ -53,6 +53,27 @@ enum ovsdb_ref_type {
OVSDB_REF_WEAK /* Delete reference if target disappears. */
};
+struct ovsdb_integer_constraints {
+ int64_t min; /* minInteger or INT64_MIN. */
+ int64_t max; /* maxInteger or INT64_MAX. */
+};
+
+struct ovsdb_real_constraints {
+ double min; /* minReal or -DBL_MAX. */
+ double max; /* minReal or DBL_MAX. */
+};
+
+struct ovsdb_string_constraints {
+ unsigned int minLen; /* minLength or 0. */
+ unsigned int maxLen; /* maxLength or UINT_MAX. */
+};
+
+struct ovsdb_uuid_constraints {
+ char *refTableName; /* Name of referenced table, or NULL. */
+ struct ovsdb_table *refTable; /* Referenced table, if available. */
+ enum ovsdb_ref_type refType; /* Reference type. */
+};
+
struct ovsdb_base_type {
enum ovsdb_atomic_type type;
@@ -61,28 +82,11 @@ struct ovsdb_base_type {
struct ovsdb_datum *enum_;
union {
- struct ovsdb_integer_constraints {
- int64_t min; /* minInteger or INT64_MIN. */
- int64_t max; /* maxInteger or INT64_MAX. */
- } integer;
-
- struct ovsdb_real_constraints {
- double min; /* minReal or -DBL_MAX. */
- double max; /* minReal or DBL_MAX. */
- } real;
-
+ struct ovsdb_integer_constraints integer;
+ struct ovsdb_real_constraints real;
/* No constraints for Boolean types. */
-
- struct ovsdb_string_constraints {
- unsigned int minLen; /* minLength or 0. */
- unsigned int maxLen; /* maxLength or UINT_MAX. */
- } string;
-
- struct ovsdb_uuid_constraints {
- char *refTableName; /* Name of referenced table, or NULL. */
- struct ovsdb_table *refTable; /* Referenced table, if available. */
- enum ovsdb_ref_type refType; /* Reference type. */
- } uuid;
+ struct ovsdb_string_constraints string;
+ struct ovsdb_uuid_constraints uuid;
};
};