libxl: idl: add Enumeration.value_namespace property
authorRob Hoes <rob.hoes@citrix.com>
Wed, 6 Nov 2013 17:49:46 +0000 (17:49 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Mon, 11 Nov 2013 15:38:27 +0000 (15:38 +0000)
This allows setting the namespace for values of an Enumeration to be different
from the namespace of the Enumeration itself.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
tools/libxl/idl.py
tools/libxl/idl.txt

index f4908dde1783f8de45cfaa1aef5c1b6b73e98d56..e4dc79bf1692c42181f7696bde82eed11a5288ea 100644 (file)
@@ -136,7 +136,7 @@ class EnumerationValue(object):
 
         self.valuename = str.upper(name)
         self.rawname = str.upper(enum.rawname) + "_" + self.valuename
-        self.name = str.upper(enum.namespace) + self.rawname
+        self.name = str.upper(enum.value_namespace) + self.rawname
         self.value = value
 
 class Enumeration(Type):
@@ -144,6 +144,9 @@ class Enumeration(Type):
         kwargs.setdefault('dispose_fn', None)
         Type.__init__(self, typename, **kwargs)
 
+        self.value_namespace = kwargs.setdefault('value_namespace',
+            self.namespace)
+
         self.values = []
         for v in values:
             # (value, name)
index 019acbe0f4e5cc71db60f697150d5c340f9627b7..439aedea774790a82d03e5bd36a3e7e821f50ef1 100644 (file)
@@ -90,6 +90,13 @@ Complex type-Classes
 idl.Enumeration
 
   A class representing an enumeration (named integer values).
+  This class has one property besides the ones defined for the Type
+  class:
+
+  Enumeration.value_namespace: (default: namespace)
+
+    The namespace in which the values of the Enumeration (see below) reside.
+    This prefix is prepended to the name of the value.
 
   The values are available in the list Enumeration.values. Each
   element in the list is of type idl.EnumerationValue.