diff options
Diffstat (limited to 'src/tools')
-rwxr-xr-x | src/tools/vppapigen/vppapigen.py | 7 | ||||
-rw-r--r-- | src/tools/vppapigen/vppapigen_json.py | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/tools/vppapigen/vppapigen.py b/src/tools/vppapigen/vppapigen.py index 06bfbff238f..94e770e38bc 100755 --- a/src/tools/vppapigen/vppapigen.py +++ b/src/tools/vppapigen/vppapigen.py @@ -176,10 +176,11 @@ def vla_is_last_check(name, block): class Service(): - def __init__(self, caller, reply, events=None, stream=False): + def __init__(self, caller, reply, events=None, stream_message=None, stream=False): self.caller = caller self.reply = reply self.stream = stream + self.stream_message = stream_message self.events = [] if events is None else events @@ -511,6 +512,10 @@ class VPPAPIParser(object): else: p[0] = Service(p[2], p[4]) + def p_service_statement2(self, p): + '''service_statement : RPC ID RETURNS ID STREAM ID ';' ''' + p[0] = Service(p[2], p[4], stream_message=p[6], stream=True) + def p_event_list(self, p): '''event_list : events | event_list events ''' diff --git a/src/tools/vppapigen/vppapigen_json.py b/src/tools/vppapigen/vppapigen_json.py index 35dcbcafbbd..6e7aaa2e6f5 100644 --- a/src/tools/vppapigen/vppapigen_json.py +++ b/src/tools/vppapigen/vppapigen_json.py @@ -26,6 +26,8 @@ def walk_services(s): d = {'reply': e.reply} if e.stream: d['stream'] = True + if e.stream_message: + d['stream_msg'] = e.stream_message if e.events: d['events'] = e.events r[e.caller] = d |