diff options
author | Yifeng Sun <pkusunyifeng@gmail.com> | 2018-10-04 12:42:21 -0700 |
---|---|---|
committer | Ben Pfaff <blp@ovn.org> | 2018-10-04 13:29:53 -0700 |
commit | f70ac90db00cf1fcf0471f277468cd6bdc67a1d7 (patch) | |
tree | 62bd37bae60ef2c9b538fc2a5735249c94fc6ac1 | |
parent | f827c57486fc76f7b02fcd908640f63e0ffdf22a (diff) | |
download | openvswitch-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>
-rw-r--r-- | lib/ovsdb-types.h | 46 |
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; }; }; |