X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fovsdb-idl.h;h=4c64585da8bef0a4b108ba0fa347cea3b62402a9;hb=1e86ae6f51bcc91d2fa36e4154bc6e540251eaf8;hp=fd6aa8b9269bbf8692bc803eedb533b9d7d220ff;hpb=577aebdfecb001155242aa9831613310f87ed13a;p=openvswitch diff --git a/lib/ovsdb-idl.h b/lib/ovsdb-idl.h index fd6aa8b9..4c64585d 100644 --- a/lib/ovsdb-idl.h +++ b/lib/ovsdb-idl.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2009 Nicira Networks. +/* Copyright (c) 2009, 2010 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,15 @@ #ifndef OVSDB_IDL_H #define OVSDB_IDL_H 1 +#include +#include + +struct json; +struct ovsdb_datum; struct ovsdb_idl_class; +struct ovsdb_idl_column; +struct ovsdb_idl_table_class; +struct uuid; struct ovsdb_idl *ovsdb_idl_create(const char *remote, const struct ovsdb_idl_class *); @@ -26,9 +34,18 @@ void ovsdb_idl_run(struct ovsdb_idl *); void ovsdb_idl_wait(struct ovsdb_idl *); unsigned int ovsdb_idl_get_seqno(const struct ovsdb_idl *); +bool ovsdb_idl_has_ever_connected(const struct ovsdb_idl *); void ovsdb_idl_force_reconnect(struct ovsdb_idl *); +const struct ovsdb_idl_row *ovsdb_idl_get_row_for_uuid( + const struct ovsdb_idl *, const struct ovsdb_idl_table_class *, + const struct uuid *); +const struct ovsdb_idl_row *ovsdb_idl_first_row( + const struct ovsdb_idl *, const struct ovsdb_idl_table_class *); +const struct ovsdb_idl_row *ovsdb_idl_next_row(const struct ovsdb_idl_row *); + enum ovsdb_idl_txn_status { + TXN_UNCHANGED, /* Transaction didn't include any changes. */ TXN_INCOMPLETE, /* Commit in progress, please wait. */ TXN_ABORTED, /* ovsdb_idl_txn_abort() called. */ TXN_SUCCESS, /* Commit successful. */ @@ -41,10 +58,32 @@ enum ovsdb_idl_txn_status { const char *ovsdb_idl_txn_status_to_string(enum ovsdb_idl_txn_status); struct ovsdb_idl_txn *ovsdb_idl_txn_create(struct ovsdb_idl *); +void ovsdb_idl_txn_add_comment(struct ovsdb_idl_txn *, const char *); void ovsdb_idl_txn_set_dry_run(struct ovsdb_idl_txn *); +void ovsdb_idl_txn_increment(struct ovsdb_idl_txn *, const char *table, + const char *column, const struct json *where); void ovsdb_idl_txn_destroy(struct ovsdb_idl_txn *); void ovsdb_idl_txn_wait(const struct ovsdb_idl_txn *); enum ovsdb_idl_txn_status ovsdb_idl_txn_commit(struct ovsdb_idl_txn *); +enum ovsdb_idl_txn_status ovsdb_idl_txn_commit_block(struct ovsdb_idl_txn *); void ovsdb_idl_txn_abort(struct ovsdb_idl_txn *); +const char *ovsdb_idl_txn_get_error(const struct ovsdb_idl_txn *); + +int64_t ovsdb_idl_txn_get_increment_new_value(const struct ovsdb_idl_txn *); +const struct uuid *ovsdb_idl_txn_get_insert_uuid(const struct ovsdb_idl_txn *, + const struct uuid *); + +void ovsdb_idl_txn_read(const struct ovsdb_idl_row *, + const struct ovsdb_idl_column *, + struct ovsdb_datum *); +void ovsdb_idl_txn_write(const struct ovsdb_idl_row *, + const struct ovsdb_idl_column *, + 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 *ovsdb_idl_txn_get_idl (struct ovsdb_idl_txn *); + #endif /* ovsdb-idl.h */