|
@@ -128,7 +128,7 @@ def visit_alternate_type(self, name, info, ifcond, features, variants):
|
|
|
|
|
|
def visit_command(self, name, info, ifcond, features,
|
|
|
arg_type, ret_type, gen, success_response, boxed,
|
|
|
- allow_oob, allow_preconfig):
|
|
|
+ allow_oob, allow_preconfig, coroutine):
|
|
|
pass
|
|
|
|
|
|
def visit_event(self, name, info, ifcond, features, arg_type, boxed):
|
|
@@ -713,7 +713,8 @@ class QAPISchemaCommand(QAPISchemaEntity):
|
|
|
|
|
|
def __init__(self, name, info, doc, ifcond, features,
|
|
|
arg_type, ret_type,
|
|
|
- gen, success_response, boxed, allow_oob, allow_preconfig):
|
|
|
+ gen, success_response, boxed, allow_oob, allow_preconfig,
|
|
|
+ coroutine):
|
|
|
super().__init__(name, info, doc, ifcond, features)
|
|
|
assert not arg_type or isinstance(arg_type, str)
|
|
|
assert not ret_type or isinstance(ret_type, str)
|
|
@@ -726,6 +727,7 @@ def __init__(self, name, info, doc, ifcond, features,
|
|
|
self.boxed = boxed
|
|
|
self.allow_oob = allow_oob
|
|
|
self.allow_preconfig = allow_preconfig
|
|
|
+ self.coroutine = coroutine
|
|
|
|
|
|
def check(self, schema):
|
|
|
super().check(schema)
|
|
@@ -768,7 +770,8 @@ def visit(self, visitor):
|
|
|
visitor.visit_command(
|
|
|
self.name, self.info, self.ifcond, self.features,
|
|
|
self.arg_type, self.ret_type, self.gen, self.success_response,
|
|
|
- self.boxed, self.allow_oob, self.allow_preconfig)
|
|
|
+ self.boxed, self.allow_oob, self.allow_preconfig,
|
|
|
+ self.coroutine)
|
|
|
|
|
|
|
|
|
class QAPISchemaEvent(QAPISchemaEntity):
|
|
@@ -1074,6 +1077,7 @@ def _def_command(self, expr, info, doc):
|
|
|
boxed = expr.get('boxed', False)
|
|
|
allow_oob = expr.get('allow-oob', False)
|
|
|
allow_preconfig = expr.get('allow-preconfig', False)
|
|
|
+ coroutine = expr.get('coroutine', False)
|
|
|
ifcond = expr.get('if')
|
|
|
features = self._make_features(expr.get('features'), info)
|
|
|
if isinstance(data, OrderedDict):
|
|
@@ -1086,7 +1090,8 @@ def _def_command(self, expr, info, doc):
|
|
|
self._def_entity(QAPISchemaCommand(name, info, doc, ifcond, features,
|
|
|
data, rets,
|
|
|
gen, success_response,
|
|
|
- boxed, allow_oob, allow_preconfig))
|
|
|
+ boxed, allow_oob, allow_preconfig,
|
|
|
+ coroutine))
|
|
|
|
|
|
def _def_event(self, expr, info, doc):
|
|
|
name = expr['event']
|