#include <stddef.h>
#include <stdint.h>
#include "column.h"
-#include "hmap.h"
-#include "list.h"
+#include "openvswitch/hmap.h"
+#include "openvswitch/list.h"
#include "ovsdb-data.h"
struct ovsdb_column_set;
* ovsdb_weak_ref" structures are created for them.
*/
struct ovsdb_weak_ref {
- struct list src_node; /* In src->src_refs list. */
- struct list dst_node; /* In destination row's dst_refs list. */
- struct ovsdb_row *src; /* Source row. */
+ struct ovs_list src_node; /* In src->src_refs list. */
+ struct ovs_list dst_node; /* In destination row's dst_refs list. */
+ struct ovsdb_row *src; /* Source row. */
+ struct ovsdb_table *dst_table; /* Destination table. */
+ struct uuid dst; /* Destination row uuid. */
};
/* A row in a database table. */
struct ovsdb_table *table; /* Table to which this belongs. */
struct ovsdb_txn_row *txn_row; /* Transaction that row is in, if any. */
- /* Weak references. */
- struct list src_refs; /* Weak references from this row. */
- struct list dst_refs; /* Weak references to this row. */
+ /* Weak references. Updated and checked only at transaction commit. */
+ struct ovs_list src_refs; /* Weak references from this row. */
+ struct ovs_list dst_refs; /* Weak references to this row. */
/* Number of strong refs to this row from other rows, in this table or
* other tables, through 'uuid' columns that have a 'refTable' constraint