X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fovsdb-idl.h;h=7832e4eef2680bcf5369d767ece250c4ebb522aa;hb=597cf5a1c197e269ad4376364422e23f5405105f;hp=2aaaa71c9ce2002d025a11da7337d3e971287272;hpb=5f55c39b21e69025045437ffbd3bb98fe6ce2e89;p=openvswitch diff --git a/lib/ovsdb-idl.h b/lib/ovsdb-idl.h index 2aaaa71c..7832e4ee 100644 --- a/lib/ovsdb-idl.h +++ b/lib/ovsdb-idl.h @@ -16,6 +16,20 @@ #ifndef OVSDB_IDL_H #define OVSDB_IDL_H 1 +/* Open vSwitch Database Interface Definition Language (OVSDB IDL). + * + * The OVSDB IDL maintains an in-memory replica of a database. It issues RPC + * requests to an OVSDB database server and parses the responses, converting + * raw JSON into data structures that are easier for clients to digest. Most + * notably, references to rows via UUID become C pointers. + * + * The IDL also assists with issuing database transactions. The client creates + * a transaction, manipulates the IDL data structures, and commits or aborts + * the transaction. The IDL then composes and issues the necessary JSON-RPC + * requests and reports to the client whether the transaction completed + * successfully. + */ + #include #include #include "compiler.h" @@ -31,7 +45,7 @@ struct ovsdb_idl *ovsdb_idl_create(const char *remote, const struct ovsdb_idl_class *); void ovsdb_idl_destroy(struct ovsdb_idl *); -void ovsdb_idl_run(struct ovsdb_idl *); +bool ovsdb_idl_run(struct ovsdb_idl *); void ovsdb_idl_wait(struct ovsdb_idl *); unsigned int ovsdb_idl_get_seqno(const struct ovsdb_idl *); @@ -84,7 +98,8 @@ void ovsdb_idl_txn_write(const struct ovsdb_idl_row *, struct ovsdb_datum *); void ovsdb_idl_txn_delete(const struct ovsdb_idl_row *); const struct ovsdb_idl_row *ovsdb_idl_txn_insert( - struct ovsdb_idl_txn *, const struct ovsdb_idl_table_class *); + struct ovsdb_idl_txn *, const struct ovsdb_idl_table_class *, + const struct uuid *); struct ovsdb_idl *ovsdb_idl_txn_get_idl (struct ovsdb_idl_txn *);