github.com/batchcorp/thrift-iterator@v0.0.0-20220918180557-4c4a158fc6e9/protocol/protocol.go (about) 1 package protocol 2 3 // Type constants in the Thrift protocol 4 type TType byte 5 type TMessageType int32 6 type SeqId int32 7 type FieldId int16 8 9 const ( 10 BINARY_VERSION_MASK = 0xffff0000 11 BINARY_VERSION_1 = 0x80010000 12 13 COMPACT_PROTOCOL_ID = 0x082 14 COMPACT_VERSION = 0x01 15 COMPACT_VERSON_BE = 0x02 16 COMPACT_VERSION_MASK = 0x1f 17 COMPACT_TYPE_BITS = 0x07 18 COMPACT_TYPE_SHIFT_AMOUT = 5 19 ) 20 21 const ( 22 MessgeTypeInvalid TMessageType = 0 23 MessageTypeCall TMessageType = 1 24 MessageTypeReply TMessageType = 2 25 MessageTypeException TMessageType = 3 26 MessageTypeOneWay TMessageType = 4 27 ) 28 29 const ( 30 TypeStop TType = 0 31 TypeVoid TType = 1 32 TypeBool TType = 2 33 TypeByte TType = 3 34 TypeI08 TType = 3 35 TypeDouble TType = 4 36 TypeI16 TType = 6 37 TypeI32 TType = 8 38 TypeI64 TType = 10 39 TypeString TType = 11 40 TypeUTF7 TType = 11 41 TypeStruct TType = 12 42 TypeMap TType = 13 43 TypeSet TType = 14 44 TypeList TType = 15 45 TypeUTF8 TType = 16 46 TypeUTF16 TType = 17 47 ) 48 49 var typeNames = map[TType]string{ 50 TypeStop: "Stop", 51 TypeVoid: "Void", 52 TypeBool: "Bool", 53 TypeByte: "Byte", 54 TypeDouble: "Double", 55 TypeI16: "I16", 56 TypeI32: "I32", 57 TypeI64: "I64", 58 TypeString: "String", 59 TypeStruct: "Struct", 60 TypeMap: "Map", 61 TypeSet: "Set", 62 TypeList: "List", 63 TypeUTF8: "UTF8", 64 TypeUTF16: "UTF16", 65 } 66 67 func (p TType) String() string { 68 if s, ok := typeNames[p]; ok { 69 return s 70 } 71 return "Unknown" 72 } 73 74 type MessageHeader struct { 75 MessageName string 76 MessageType TMessageType 77 SeqId SeqId 78 } 79 80 type Flusher interface { 81 Flush() error 82 }