From: Ben Pfaff Date: Fri, 28 Mar 2014 02:11:20 +0000 (-0700) Subject: ovsdb-idlc: Generate new *_get_for_uuid() functions. X-Git-Tag: sliver-openvswitch-2.2.90-1~6^2~24 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=8c6cf7b8a6f159a284f78db8dbac1fd0a0f197a4;p=sliver-openvswitch.git 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 --- 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) {