/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ namespace as3 org.apache.thrift.plugin namespace cpp apache.thrift.plugin namespace csharp Thrift.Plugin namespace d thrift.plugin namespace delphi Thrift.Plugin namespace erl thrift.plugin namespace go thrift namespace haxe org.apache.thrift.plugin namespace hs Thrift.Plugin namespace java org.apache.thrift.plugin namespace ocaml Thrift namespace perl Thrift.Plugin namespace php thrift.plugin namespace py thrift.plugin namespace rb Thrift typedef i64 t_program_id typedef i64 t_type_id typedef i64 t_const_id typedef i64 t_service_id enum t_base { TYPE_VOID TYPE_STRING TYPE_BOOL TYPE_I8 TYPE_I16 TYPE_I32 TYPE_I64 TYPE_DOUBLE TYPE_BINARY } struct TypeMetadata { 1: required string name 2: required t_program_id program_id 99: optional map annotations 100: optional string doc } struct t_base_type { 1: required TypeMetadata metadata 2: required t_base value } struct t_list { 1: required TypeMetadata metadata 2: optional string cpp_name 3: required t_type_id elem_type } struct t_set { 1: required TypeMetadata metadata 2: optional string cpp_name 3: required t_type_id elem_type } struct t_map { 1: required TypeMetadata metadata 2: optional string cpp_name 3: required t_type_id key_type 4: required t_type_id val_type } struct t_typedef { 1: required TypeMetadata metadata 2: required t_type_id type 3: required string symbolic 4: required bool forward } struct t_enum_value { 1: required string name 2: required i32 value 99: optional map annotations 100: optional string doc } struct t_enum { 1: required TypeMetadata metadata 2: required list constants } enum Requiredness { T_REQUIRED = 0 T_OPTIONAL = 1 T_OPT_IN_REQ_OUT = 2 } union t_const_value { 1: optional map map_val 2: optional list list_val 3: optional string string_val 4: optional i64 integer_val 5: optional double double_val 6: optional string identifier_val 7: optional t_type_id enum_val } struct t_const { 1: required string name 2: required t_type_id type 3: required t_const_value value 100: optional string doc } struct t_struct { 1: required TypeMetadata metadata 2: required list members 3: required bool is_union 4: required bool is_xception } struct t_field { 1: required string name 2: required t_type_id type 3: required i32 key 4: required Requiredness req 5: optional t_const_value value 10: required bool reference 99: optional map annotations 100: optional string doc } struct t_function { 1: required string name 2: required t_type_id returntype 3: required t_type_id arglist 4: required t_type_id xceptions 5: required bool is_oneway 100: optional string doc } struct t_service { 1: required TypeMetadata metadata 2: required list functions 3: optional t_service_id extends_ } union t_type { 1: optional t_base_type base_type_val 2: optional t_typedef typedef_val 3: optional t_enum enum_val 4: optional t_struct struct_val 5: optional t_struct xception_val 6: optional t_list list_val 7: optional t_set set_val 8: optional t_map map_val 9: optional t_service service_val } struct t_scope { 1: required list types 2: required list constants 3: required list services } struct TypeRegistry { 1: required map types 2: required map constants 3: required map services } struct t_program { 1: required string name 2: required t_program_id program_id 3: required string path 4: required string namespace_ 5: required string out_path 6: required bool out_path_is_absolute 8: required list includes 9: required string include_prefix 10: required t_scope scope 11: required list typedefs 12: required list enums 13: required list consts 14: required list objects 15: required list services 16: required map namespaces 17: required list cpp_includes 18: required list c_includes 100: optional string doc } struct GeneratorInput { 1: required t_program program 2: required TypeRegistry type_registry 3: required map parsed_options }