common.py (709395f8f627808175307f0c298ce71614fa67d0) common.py (56a4689582433125d7042ba506a081e08dc264d4)
1#
2# QAPI helper library
3#
4# Copyright IBM, Corp. 2011
5# Copyright (c) 2013-2018 Red Hat Inc.
6#
7# Authors:
8# Anthony Liguori <aliguori@us.ibm.com>

--- 1075 unchanged lines hidden (view full) ---

1084 def check(self, schema):
1085 if isinstance(self._ifcond, QAPISchemaType):
1086 # inherit the condition from a type
1087 typ = self._ifcond
1088 typ.check(schema)
1089 self.ifcond = typ.ifcond
1090 else:
1091 self.ifcond = listify_cond(self._ifcond)
1#
2# QAPI helper library
3#
4# Copyright IBM, Corp. 2011
5# Copyright (c) 2013-2018 Red Hat Inc.
6#
7# Authors:
8# Anthony Liguori <aliguori@us.ibm.com>

--- 1075 unchanged lines hidden (view full) ---

1084 def check(self, schema):
1085 if isinstance(self._ifcond, QAPISchemaType):
1086 # inherit the condition from a type
1087 typ = self._ifcond
1088 typ.check(schema)
1089 self.ifcond = typ.ifcond
1090 else:
1091 self.ifcond = listify_cond(self._ifcond)
1092 if self.info:
1093 self.module = os.path.relpath(self.info['file'],
1094 os.path.dirname(schema.fname))
1092
1093 def is_implicit(self):
1094 return not self.info
1095
1096 def visit(self, visitor):
1097 pass
1098
1099

--- 157 unchanged lines hidden (view full) ---

1257 self._element_type_name = element_type
1258 self.element_type = None
1259
1260 def check(self, schema):
1261 QAPISchemaType.check(self, schema)
1262 self.element_type = schema.lookup_type(self._element_type_name)
1263 assert self.element_type
1264 self.element_type.check(schema)
1095
1096 def is_implicit(self):
1097 return not self.info
1098
1099 def visit(self, visitor):
1100 pass
1101
1102

--- 157 unchanged lines hidden (view full) ---

1260 self._element_type_name = element_type
1261 self.element_type = None
1262
1263 def check(self, schema):
1264 QAPISchemaType.check(self, schema)
1265 self.element_type = schema.lookup_type(self._element_type_name)
1266 assert self.element_type
1267 self.element_type.check(schema)
1268 self.module = self.element_type.module
1265 self.ifcond = self.element_type.ifcond
1266
1267 def is_implicit(self):
1268 return True
1269
1270 def c_type(self):
1271 return c_name(self.name) + pointer_suffix
1272

--- 325 unchanged lines hidden (view full) ---

1598
1599 def visit(self, visitor):
1600 visitor.visit_event(self.name, self.info, self.ifcond,
1601 self.arg_type, self.boxed)
1602
1603
1604class QAPISchema(object):
1605 def __init__(self, fname):
1269 self.ifcond = self.element_type.ifcond
1270
1271 def is_implicit(self):
1272 return True
1273
1274 def c_type(self):
1275 return c_name(self.name) + pointer_suffix
1276

--- 325 unchanged lines hidden (view full) ---

1602
1603 def visit(self, visitor):
1604 visitor.visit_event(self.name, self.info, self.ifcond,
1605 self.arg_type, self.boxed)
1606
1607
1608class QAPISchema(object):
1609 def __init__(self, fname):
1606 self._fname = fname
1610 self.fname = fname
1607 if sys.version_info[0] >= 3:
1608 f = open(fname, 'r', encoding='utf-8')
1609 else:
1610 f = open(fname, 'r')
1611 parser = QAPISchemaParser(f)
1612 exprs = check_exprs(parser.exprs)
1613 self.docs = parser.docs
1614 self._entity_list = []

--- 6 unchanged lines hidden (view full) ---

1621
1622 def _def_entity(self, ent):
1623 # Only the predefined types are allowed to not have info
1624 assert ent.info or self._predefining
1625 assert ent.name is None or ent.name not in self._entity_dict
1626 self._entity_list.append(ent)
1627 if ent.name is not None:
1628 self._entity_dict[ent.name] = ent
1611 if sys.version_info[0] >= 3:
1612 f = open(fname, 'r', encoding='utf-8')
1613 else:
1614 f = open(fname, 'r')
1615 parser = QAPISchemaParser(f)
1616 exprs = check_exprs(parser.exprs)
1617 self.docs = parser.docs
1618 self._entity_list = []

--- 6 unchanged lines hidden (view full) ---

1625
1626 def _def_entity(self, ent):
1627 # Only the predefined types are allowed to not have info
1628 assert ent.info or self._predefining
1629 assert ent.name is None or ent.name not in self._entity_dict
1630 self._entity_list.append(ent)
1631 if ent.name is not None:
1632 self._entity_dict[ent.name] = ent
1629 if ent.info:
1630 ent.module = os.path.relpath(ent.info['file'],
1631 os.path.dirname(self._fname))
1632
1633 def lookup_entity(self, name, typ=None):
1634 ent = self._entity_dict.get(name)
1635 if typ and not isinstance(ent, typ):
1636 return None
1637 return ent
1638
1639 def lookup_type(self, name):

--- 770 unchanged lines hidden ---
1633
1634 def lookup_entity(self, name, typ=None):
1635 ent = self._entity_dict.get(name)
1636 if typ and not isinstance(ent, typ):
1637 return None
1638 return ent
1639
1640 def lookup_type(self, name):

--- 770 unchanged lines hidden ---