odp-util: Format and scan multiple MPLS labels.
[cascardo/ovs.git] / ovsdb / ovsdb.h
index a83412d..04586e7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009, 2010 Nicira Networks
+/* Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 struct json;
 struct ovsdb_log;
+struct ovsdb_session;
 struct ovsdb_txn;
+struct simap;
 struct uuid;
 
 /* Database schema. */
 struct ovsdb_schema {
     char *name;
+    char *version;
+    char *cksum;
     struct shash tables;        /* Contains "struct ovsdb_table_schema *"s. */
 };
 
-struct ovsdb_schema *ovsdb_schema_create(const char *name);
+struct ovsdb_schema *ovsdb_schema_create(const char *name,
+                                         const char *version,
+                                         const char *cksum);
 struct ovsdb_schema *ovsdb_schema_clone(const struct ovsdb_schema *);
 void ovsdb_schema_destroy(struct ovsdb_schema *);
 
 struct ovsdb_error *ovsdb_schema_from_file(const char *file_name,
                                            struct ovsdb_schema **)
-    WARN_UNUSED_RESULT;
+    OVS_WARN_UNUSED_RESULT;
 struct ovsdb_error *ovsdb_schema_from_json(struct json *,
                                            struct ovsdb_schema **)
-    WARN_UNUSED_RESULT;
+    OVS_WARN_UNUSED_RESULT;
 struct json *ovsdb_schema_to_json(const struct ovsdb_schema *);
+
+bool ovsdb_schema_equal(const struct ovsdb_schema *,
+                        const struct ovsdb_schema *);
 \f
 /* Database. */
 struct ovsdb {
     struct ovsdb_schema *schema;
-    struct list replicas;       /* Contains "struct ovsdb_replica"s. */
+    struct ovs_list replicas;   /* Contains "struct ovsdb_replica"s. */
     struct shash tables;        /* Contains "struct ovsdb_table *"s. */
 
     /* Triggers. */
-    struct list triggers;       /* Contains "struct ovsdb_trigger"s. */
+    struct ovs_list triggers;   /* Contains "struct ovsdb_trigger"s. */
     bool run_triggers;
 };
 
 struct ovsdb *ovsdb_create(struct ovsdb_schema *);
 void ovsdb_destroy(struct ovsdb *);
 
-struct ovsdb_error *ovsdb_from_json(const struct json *, struct ovsdb **)
-    WARN_UNUSED_RESULT;
-struct json *ovsdb_to_json(const struct ovsdb *);
+void ovsdb_get_memory_usage(const struct ovsdb *, struct simap *usage);
 
 struct ovsdb_table *ovsdb_get_table(const struct ovsdb *, const char *);
 
-struct json *ovsdb_execute(struct ovsdb *, const struct json *params,
+struct json *ovsdb_execute(struct ovsdb *, const struct ovsdb_session *,
+                           const struct json *params,
                            long long int elapsed_msec,
                            long long int *timeout_msec);
 \f
 /* Database replication. */
 
 struct ovsdb_replica {
-    struct list node;           /* Element in "struct ovsdb" replicas list. */
+    struct ovs_list node;       /* Element in "struct ovsdb" replicas list. */
     const struct ovsdb_replica_class *class;
 };