qapi.py: Maintain a list of union types
Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
		
							parent
							
								
									e8316d7e8e
								
							
						
					
					
						commit
						ea66c6d881
					
				| @ -105,6 +105,7 @@ def parse_schema(fp): | ||||
|         if expr_eval.has_key('enum'): | ||||
|             add_enum(expr_eval['enum']) | ||||
|         elif expr_eval.has_key('union'): | ||||
|             add_union(expr_eval) | ||||
|             add_enum('%sKind' % expr_eval['union']) | ||||
|         elif expr_eval.has_key('type'): | ||||
|             add_struct(expr_eval) | ||||
| @ -188,6 +189,7 @@ def type_name(name): | ||||
| 
 | ||||
| enum_types = [] | ||||
| struct_types = [] | ||||
| union_types = [] | ||||
| 
 | ||||
| def add_struct(definition): | ||||
|     global struct_types | ||||
| @ -200,6 +202,17 @@ def find_struct(name): | ||||
|             return struct | ||||
|     return None | ||||
| 
 | ||||
| def add_union(definition): | ||||
|     global union_types | ||||
|     union_types.append(definition) | ||||
| 
 | ||||
| def find_union(name): | ||||
|     global union_types | ||||
|     for union in union_types: | ||||
|         if union['union'] == name: | ||||
|             return union | ||||
|     return None | ||||
| 
 | ||||
| def add_enum(name): | ||||
|     global enum_types | ||||
|     enum_types.append(name) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Kevin Wolf
						Kevin Wolf