[ovs-dev] [python 14/31] ovs.db.idl: Use top-level class to represent IDL rows.

Ben Pfaff blp at nicira.com
Tue Aug 23 21:05:08 UTC 2011


According to Reid, there may be some disadvantages to having this class be
anonymous, for example, cannot do instance/typechecking, might be
allocating a new class for every row as well, which isn't the most memory
efficient.

Suggested-by: Reid Price <reid at nicira.com>
---
 python/ovs/db/idl.py |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/python/ovs/db/idl.py b/python/ovs/db/idl.py
index abb7a44..dc5f89e 100644
--- a/python/ovs/db/idl.py
+++ b/python/ovs/db/idl.py
@@ -293,8 +293,6 @@ class Idl:
             self.data[table_name] = {}
 
     def __create_row(self, table, uuid):
-        class Row(object):
-            pass
         row = self.data[table.name][uuid] = Row()
         for column in table.columns.itervalues():
             setattr(row, column.name, ovs.db.data.Datum.default(column.type))
@@ -304,3 +302,10 @@ class Idl:
         """Forces the IDL to drop its connection to the database and reconnect.
         In the meantime, the contents of the IDL will not change."""
         self.session.force_reconnect()
+
+class Row(object):
+    """A row within an Idl.  Data for each column is stored as an attribute
+    with the same name as the column and using an ovs.db.data.Datum as the
+    value."""
+    pass
+
-- 
1.7.4.4




More information about the dev mailing list