thrift/if/reflection_limited.thrift

72 lines
1.5 KiB
Thrift
Raw Normal View History

#!/usr/local/bin/thrift -php -java -cpp -py
// NOTICE!!!
// DO NOT FORGET to run regen.sh if you change this file
// (or if you change the compiler).
// This interface is deprecated.
// There is no replacement yet, but I hate it so much that
// I'm deprecating it before it's done.
// @author I'm too ashamed to say.
// dreiss naively thinks he knows how to do this better,
// so talk to him if you are interested in taking it on,
// or if you just want someone to make it better for you.
cpp_namespace facebook.thrift.reflection.limited
java_package com.facebook.thrift.reflection.limited
py_module thrift.reflection.limited
enum TTypeTag {
T_VOID = 1,
T_BOOL = 2,
T_BYTE = 3,
T_I16 = 6,
T_I32 = 8,
T_I64 = 10,
T_DOUBLE = 4,
T_STRING = 11,
T_STRUCT = 12,
T_MAP = 13,
T_SET = 14,
T_LIST = 15,
// This doesn't exist in TBinaryProtocol, but it could be useful for reflection.
T_ENUM = 101,
T_NOT_REFLECTED = 102,
}
struct SimpleType {
1: TTypeTag ttype,
2: string name, // For structs and emums.
}
struct ContainerType {
1: TTypeTag ttype,
2: SimpleType subtype1,
3: optional SimpleType subtype2,
}
struct ThriftType {
1: bool is_container,
2: optional SimpleType simple_type,
3: optional ContainerType container_type,
}
struct Argument {
1: i16 key,
2: string name,
3: ThriftType type,
}
struct Method {
1: string name,
2: ThriftType return_type,
3: list<Argument> arguments,
}
struct Service {
1: string name,
2: list<Method> methods,
3: bool fully_reflected,
}