From 8c6cf7b8a6f159a284f78db8dbac1fd0a0f197a4 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 27 Mar 2014 19:11:20 -0700 Subject: [PATCH] ovsdb-idlc: Generate new *_get_for_uuid() functions. This allows a client to obtain the IDL version of a row given its UUID. It isn't normally useful, but there's a specialized use case for getting the IDL version of a row given the UUID returned by ovsdb_idl_txn_get_insert_uuid() following transaction commit. An alternative would be to generate table-specific versions of ovsdb_idl_txn_get_insert_uuid(). That seems reasonable to me too. Signed-off-by: Ben Pfaff Acked-by: Andy Zhou --- ovsdb/ovsdb-idlc.in | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in index d680f7c6c..6c8aa435c 100755 --- a/ovsdb/ovsdb-idlc.in +++ b/ovsdb/ovsdb-idlc.in @@ -110,6 +110,7 @@ def printCIDLHeader(schemaFile): print "\nextern struct ovsdb_idl_column %s_columns[%s_N_COLUMNS];" % (structName, structName.upper()) print ''' +const struct %(s)s *%(s)s_get_for_uuid(const struct ovsdb_idl *, const struct uuid *); const struct %(s)s *%(s)s_first(const struct ovsdb_idl *); const struct %(s)s *%(s)s_next(const struct %(s)s *); #define %(S)s_FOR_EACH(ROW, IDL) \\ @@ -381,6 +382,12 @@ void # First, next functions. print ''' +const struct %(s)s * +%(s)s_get_for_uuid(const struct ovsdb_idl *idl, const struct uuid *uuid) +{ + return %(s)s_cast(ovsdb_idl_get_row_for_uuid(idl, &%(p)stable_classes[%(P)sTABLE_%(T)s], uuid)); +} + const struct %(s)s * %(s)s_first(const struct ovsdb_idl *idl) { -- 2.47.0