X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Ftools%2Fvppapigen%2Fvppapigen_json.py;h=f41bfb08c58eeb3283aad308d3d8bb44a0a368e1;hb=148c7b768;hp=c2a2b7d0682cd17f3c6de4f196c5a137a27dde5b;hpb=2a1ca787b9ca0021bd5da73450caedc2ff41c76d;p=vpp.git diff --git a/src/tools/vppapigen/vppapigen_json.py b/src/tools/vppapigen/vppapigen_json.py index c2a2b7d0682..f41bfb08c58 100644 --- a/src/tools/vppapigen/vppapigen_json.py +++ b/src/tools/vppapigen/vppapigen_json.py @@ -2,6 +2,26 @@ import json +def walk_imports(s): + r = [] + for e in s: + r.append(str(e)) + return r + + +def walk_counters(s, pathset): + r = [] + for e in s: + r2 = {'name': e.name, 'elements': e.block} + r.append(r2) + + r3 = [] + for p in pathset: + r3.append(p.paths) + + return r, r3 + + def walk_enums(s): r = [] for e in s: @@ -20,6 +40,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 @@ -58,6 +80,7 @@ def walk_defs(s, is_message=False): r.append(d) return r + # # Plugin entry point # @@ -75,4 +98,6 @@ def run(args, filename, s): j['options'] = s['Option'] j['aliases'] = {o.name:o.alias for o in s['types'] if o.__class__.__name__ == 'Using'} j['vl_api_version'] = hex(s['file_crc']) + j['imports'] = walk_imports(i for i in s['Import']) + j['counters'], j['paths'] = walk_counters(s['Counters'], s['Paths']) return json.dumps(j, indent=4, separators=(',', ': '))