tag: Use existing macro instead of constant.
[openvswitch] / ovsdb / OVSDB.py
index f01c45b681502358657a030c6c93b820a2406680..3acc7b87a14f8c578701864d83fe6d0ac72ba9aa 100644 (file)
@@ -193,6 +193,17 @@ class Atom:
         elif self.type == 'uuid':
             return self.value.value
 
+# Returns integer x formatted in decimal with thousands set off by commas.
+def commafy(x):
+    return _commafy("%d" % x)
+def _commafy(s):
+    if s.startswith('-'):
+        return '-' + _commafy(s[1:])
+    elif len(s) <= 3:
+        return s
+    else:
+        return _commafy(s[:-3]) + ',' + _commafy(s[-3:])
+
 class BaseType:
     def __init__(self, type,
                  enum=None,
@@ -253,13 +264,14 @@ class BaseType:
                                                  ', '.join(literals[1:-1]),
                                                  literals[-1])
         elif self.minInteger != None and self.maxInteger != None:
-            return 'in range [%d,%d]' % (self.minInteger, self.maxInteger)
+            return 'in range %s to %s' % (commafy(self.minInteger),
+                                         commafy(self.maxInteger))
         elif self.minInteger != None:
-            return 'at least %d' % self.minInteger
+            return 'at least %s' % commafy(self.minInteger)
         elif self.maxInteger != None:
-            return 'at most %d' % self.maxInteger
+            return 'at most %s' % commafy(self.maxInteger)
         elif self.minReal != None and self.maxReal != None:
-            return 'in range [%g, %g]' % (self.minReal, self.maxReal)
+            return 'in range %g to %g' % (self.minReal, self.maxReal)
         elif self.minReal != None:
             return 'at least %g' % self.minReal
         elif self.maxReal != None:
@@ -286,6 +298,9 @@ class BaseType:
                     'boolean': 'bool ',
                     'string': 'char *'}[self.type]
 
+    def toAtomicType(self):
+        return "OVSDB_TYPE_%s" % self.type.upper()
+
     def copyCValue(self, dst, src):
         args = {'dst': dst, 'src': src}
         if self.refTable:
@@ -317,9 +332,9 @@ class BaseType:
             stmts += self.enum.cInitDatum("%s.enum_" % var)
         if self.type == 'integer':
             if self.minInteger != None:
-                stmts.append('%s.u.integer.min = %d;' % (var, self.minInteger))
+                stmts.append('%s.u.integer.min = INT64_C(%d);' % (var, self.minInteger))
             if self.maxInteger != None:
-                stmts.append('%s.u.integer.max = %d;' % (var, self.maxInteger))
+                stmts.append('%s.u.integer.max = INT64_C(%d);' % (var, self.maxInteger))
         elif self.type == 'real':
             if self.minReal != None:
                 stmts.append('%s.u.real.min = %d;' % (var, self.minReal))