Documentation ¶
Index ¶
- Constants
- Variables
- func AddReadTHeaderToContext(ctx context.Context, headers THeaderMap) context.Context
- func GetHeader(ctx context.Context, key string) (value string, ok bool)
- func GetReadHeaderList(ctx context.Context) []string
- func GetWriteHeaderList(ctx context.Context) []string
- func NewTransformWriter(baseWriter io.Writer, transforms []THeaderTransformID) (io.WriteCloser, error)
- func NopLogger(msg string)
- func PrependError(prepend string, err error) error
- func PropagateTConfiguration(impl interface{}, cfg *TConfiguration)
- func SetHeader(ctx context.Context, key, value string) context.Context
- func SetReadHeaderList(ctx context.Context, keys []string) context.Context
- func SetResponseHelper(ctx context.Context, helper TResponseHelper) context.Context
- func SetWriteHeaderList(ctx context.Context, keys []string) context.Context
- func Skip(ctx context.Context, self TProtocol, fieldType TType, maxDepth int) (err error)
- func SkipDefaultDepth(ctx context.Context, prot TProtocol, typeId TType) (err error)
- func UnsetHeader(ctx context.Context, key string) context.Context
- type ContextFlusher
- type Flusher
- type Logger
- type Numeric
- type ReadSizeProvider
- type ResponseMeta
- type RichTransport
- type TApplicationException
- type TBinaryProtocol
- func (p *TBinaryProtocol) Flush(ctx context.Context) (err error)
- func (p *TBinaryProtocol) ReadBinary(ctx context.Context) ([]byte, error)
- func (p *TBinaryProtocol) ReadBool(ctx context.Context) (bool, error)
- func (p *TBinaryProtocol) ReadByte(ctx context.Context) (int8, error)
- func (p *TBinaryProtocol) ReadDouble(ctx context.Context) (value float64, err error)
- func (p *TBinaryProtocol) ReadFieldBegin(ctx context.Context) (name string, typeId TType, seqId int16, err error)
- func (p *TBinaryProtocol) ReadFieldEnd(ctx context.Context) error
- func (p *TBinaryProtocol) ReadI16(ctx context.Context) (value int16, err error)
- func (p *TBinaryProtocol) ReadI32(ctx context.Context) (value int32, err error)
- func (p *TBinaryProtocol) ReadI64(ctx context.Context) (value int64, err error)
- func (p *TBinaryProtocol) ReadListBegin(ctx context.Context) (elemType TType, size int, err error)
- func (p *TBinaryProtocol) ReadListEnd(ctx context.Context) error
- func (p *TBinaryProtocol) ReadMapBegin(ctx context.Context) (kType, vType TType, size int, err error)
- func (p *TBinaryProtocol) ReadMapEnd(ctx context.Context) error
- func (p *TBinaryProtocol) ReadMessageBegin(ctx context.Context) (name string, typeId TMessageType, seqId int32, err error)
- func (p *TBinaryProtocol) ReadMessageEnd(ctx context.Context) error
- func (p *TBinaryProtocol) ReadSetBegin(ctx context.Context) (elemType TType, size int, err error)
- func (p *TBinaryProtocol) ReadSetEnd(ctx context.Context) error
- func (p *TBinaryProtocol) ReadString(ctx context.Context) (value string, err error)
- func (p *TBinaryProtocol) ReadStructBegin(ctx context.Context) (name string, err error)
- func (p *TBinaryProtocol) ReadStructEnd(ctx context.Context) error
- func (p *TBinaryProtocol) SetTConfiguration(conf *TConfiguration)
- func (p *TBinaryProtocol) Skip(ctx context.Context, fieldType TType) (err error)
- func (p *TBinaryProtocol) Transport() TTransport
- func (p *TBinaryProtocol) WriteBinary(ctx context.Context, value []byte) error
- func (p *TBinaryProtocol) WriteBool(ctx context.Context, value bool) error
- func (p *TBinaryProtocol) WriteByte(ctx context.Context, value int8) error
- func (p *TBinaryProtocol) WriteDouble(ctx context.Context, value float64) error
- func (p *TBinaryProtocol) WriteFieldBegin(ctx context.Context, name string, typeId TType, id int16) error
- func (p *TBinaryProtocol) WriteFieldEnd(ctx context.Context) error
- func (p *TBinaryProtocol) WriteFieldStop(ctx context.Context) error
- func (p *TBinaryProtocol) WriteI16(ctx context.Context, value int16) error
- func (p *TBinaryProtocol) WriteI32(ctx context.Context, value int32) error
- func (p *TBinaryProtocol) WriteI64(ctx context.Context, value int64) error
- func (p *TBinaryProtocol) WriteListBegin(ctx context.Context, elemType TType, size int) error
- func (p *TBinaryProtocol) WriteListEnd(ctx context.Context) error
- func (p *TBinaryProtocol) WriteMapBegin(ctx context.Context, keyType TType, valueType TType, size int) error
- func (p *TBinaryProtocol) WriteMapEnd(ctx context.Context) error
- func (p *TBinaryProtocol) WriteMessageBegin(ctx context.Context, name string, typeId TMessageType, seqId int32) error
- func (p *TBinaryProtocol) WriteMessageEnd(ctx context.Context) error
- func (p *TBinaryProtocol) WriteSetBegin(ctx context.Context, elemType TType, size int) error
- func (p *TBinaryProtocol) WriteSetEnd(ctx context.Context) error
- func (p *TBinaryProtocol) WriteString(ctx context.Context, value string) error
- func (p *TBinaryProtocol) WriteStructBegin(ctx context.Context, name string) error
- func (p *TBinaryProtocol) WriteStructEnd(ctx context.Context) error
- type TBinaryProtocolFactory
- type TClient
- type TCompactProtocol
- func (p *TCompactProtocol) Flush(ctx context.Context) (err error)
- func (p *TCompactProtocol) ReadBinary(ctx context.Context) (value []byte, err error)
- func (p *TCompactProtocol) ReadBool(ctx context.Context) (value bool, err error)
- func (p *TCompactProtocol) ReadByte(ctx context.Context) (int8, error)
- func (p *TCompactProtocol) ReadDouble(ctx context.Context) (value float64, err error)
- func (p *TCompactProtocol) ReadFieldBegin(ctx context.Context) (name string, typeId TType, id int16, err error)
- func (p *TCompactProtocol) ReadFieldEnd(ctx context.Context) error
- func (p *TCompactProtocol) ReadI16(ctx context.Context) (value int16, err error)
- func (p *TCompactProtocol) ReadI32(ctx context.Context) (value int32, err error)
- func (p *TCompactProtocol) ReadI64(ctx context.Context) (value int64, err error)
- func (p *TCompactProtocol) ReadListBegin(ctx context.Context) (elemType TType, size int, err error)
- func (p *TCompactProtocol) ReadListEnd(ctx context.Context) error
- func (p *TCompactProtocol) ReadMapBegin(ctx context.Context) (keyType TType, valueType TType, size int, err error)
- func (p *TCompactProtocol) ReadMapEnd(ctx context.Context) error
- func (p *TCompactProtocol) ReadMessageBegin(ctx context.Context) (name string, typeId TMessageType, seqId int32, err error)
- func (p *TCompactProtocol) ReadMessageEnd(ctx context.Context) error
- func (p *TCompactProtocol) ReadSetBegin(ctx context.Context) (elemType TType, size int, err error)
- func (p *TCompactProtocol) ReadSetEnd(ctx context.Context) error
- func (p *TCompactProtocol) ReadString(ctx context.Context) (value string, err error)
- func (p *TCompactProtocol) ReadStructBegin(ctx context.Context) (name string, err error)
- func (p *TCompactProtocol) ReadStructEnd(ctx context.Context) error
- func (p *TCompactProtocol) SetTConfiguration(conf *TConfiguration)
- func (p *TCompactProtocol) Skip(ctx context.Context, fieldType TType) (err error)
- func (p *TCompactProtocol) Transport() TTransport
- func (p *TCompactProtocol) WriteBinary(ctx context.Context, bin []byte) error
- func (p *TCompactProtocol) WriteBool(ctx context.Context, value bool) error
- func (p *TCompactProtocol) WriteByte(ctx context.Context, value int8) error
- func (p *TCompactProtocol) WriteDouble(ctx context.Context, value float64) error
- func (p *TCompactProtocol) WriteFieldBegin(ctx context.Context, name string, typeId TType, id int16) error
- func (p *TCompactProtocol) WriteFieldEnd(ctx context.Context) error
- func (p *TCompactProtocol) WriteFieldStop(ctx context.Context) error
- func (p *TCompactProtocol) WriteI16(ctx context.Context, value int16) error
- func (p *TCompactProtocol) WriteI32(ctx context.Context, value int32) error
- func (p *TCompactProtocol) WriteI64(ctx context.Context, value int64) error
- func (p *TCompactProtocol) WriteListBegin(ctx context.Context, elemType TType, size int) error
- func (p *TCompactProtocol) WriteListEnd(ctx context.Context) error
- func (p *TCompactProtocol) WriteMapBegin(ctx context.Context, keyType TType, valueType TType, size int) error
- func (p *TCompactProtocol) WriteMapEnd(ctx context.Context) error
- func (p *TCompactProtocol) WriteMessageBegin(ctx context.Context, name string, typeId TMessageType, seqid int32) error
- func (p *TCompactProtocol) WriteMessageEnd(ctx context.Context) error
- func (p *TCompactProtocol) WriteSetBegin(ctx context.Context, elemType TType, size int) error
- func (p *TCompactProtocol) WriteSetEnd(ctx context.Context) error
- func (p *TCompactProtocol) WriteString(ctx context.Context, value string) error
- func (p *TCompactProtocol) WriteStructBegin(ctx context.Context, name string) error
- func (p *TCompactProtocol) WriteStructEnd(ctx context.Context) error
- type TCompactProtocolFactory
- type TConfiguration
- func (tc *TConfiguration) GetConnectTimeout() time.Duration
- func (tc *TConfiguration) GetMaxFrameSize() int32
- func (tc *TConfiguration) GetMaxMessageSize() int32
- func (tc *TConfiguration) GetSocketTimeout() time.Duration
- func (tc *TConfiguration) GetTBinaryStrictRead() bool
- func (tc *TConfiguration) GetTBinaryStrictWrite() bool
- func (tc *TConfiguration) GetTHeaderProtocolID() THeaderProtocolID
- func (tc *TConfiguration) GetTLSConfig() *tls.Config
- type TConfigurationSetter
- type TException
- type TExceptionType
- type THeaderInfoType
- type THeaderMap
- type THeaderProtocol
- func (p *THeaderProtocol) AddTransform(transform THeaderTransformID) error
- func (p *THeaderProtocol) ClearWriteHeaders()
- func (p *THeaderProtocol) Flush(ctx context.Context) error
- func (p *THeaderProtocol) GetReadHeaders() THeaderMap
- func (p *THeaderProtocol) ReadBinary(ctx context.Context) (value []byte, err error)
- func (p *THeaderProtocol) ReadBool(ctx context.Context) (value bool, err error)
- func (p *THeaderProtocol) ReadByte(ctx context.Context) (value int8, err error)
- func (p *THeaderProtocol) ReadDouble(ctx context.Context) (value float64, err error)
- func (p *THeaderProtocol) ReadFieldBegin(ctx context.Context) (name string, typeID TType, id int16, err error)
- func (p *THeaderProtocol) ReadFieldEnd(ctx context.Context) error
- func (p *THeaderProtocol) ReadFrame(ctx context.Context) error
- func (p *THeaderProtocol) ReadI16(ctx context.Context) (value int16, err error)
- func (p *THeaderProtocol) ReadI32(ctx context.Context) (value int32, err error)
- func (p *THeaderProtocol) ReadI64(ctx context.Context) (value int64, err error)
- func (p *THeaderProtocol) ReadListBegin(ctx context.Context) (elemType TType, size int, err error)
- func (p *THeaderProtocol) ReadListEnd(ctx context.Context) error
- func (p *THeaderProtocol) ReadMapBegin(ctx context.Context) (keyType TType, valueType TType, size int, err error)
- func (p *THeaderProtocol) ReadMapEnd(ctx context.Context) error
- func (p *THeaderProtocol) ReadMessageBegin(ctx context.Context) (name string, typeID TMessageType, seqID int32, err error)
- func (p *THeaderProtocol) ReadMessageEnd(ctx context.Context) error
- func (p *THeaderProtocol) ReadSetBegin(ctx context.Context) (elemType TType, size int, err error)
- func (p *THeaderProtocol) ReadSetEnd(ctx context.Context) error
- func (p *THeaderProtocol) ReadString(ctx context.Context) (value string, err error)
- func (p *THeaderProtocol) ReadStructBegin(ctx context.Context) (name string, err error)
- func (p *THeaderProtocol) ReadStructEnd(ctx context.Context) error
- func (p *THeaderProtocol) SetTConfiguration(cfg *TConfiguration)
- func (p *THeaderProtocol) SetWriteHeader(key, value string)
- func (p *THeaderProtocol) Skip(ctx context.Context, fieldType TType) error
- func (p *THeaderProtocol) Transport() TTransport
- func (p *THeaderProtocol) WriteBinary(ctx context.Context, value []byte) error
- func (p *THeaderProtocol) WriteBool(ctx context.Context, value bool) error
- func (p *THeaderProtocol) WriteByte(ctx context.Context, value int8) error
- func (p *THeaderProtocol) WriteDouble(ctx context.Context, value float64) error
- func (p *THeaderProtocol) WriteFieldBegin(ctx context.Context, name string, typeID TType, id int16) error
- func (p *THeaderProtocol) WriteFieldEnd(ctx context.Context) error
- func (p *THeaderProtocol) WriteFieldStop(ctx context.Context) error
- func (p *THeaderProtocol) WriteI16(ctx context.Context, value int16) error
- func (p *THeaderProtocol) WriteI32(ctx context.Context, value int32) error
- func (p *THeaderProtocol) WriteI64(ctx context.Context, value int64) error
- func (p *THeaderProtocol) WriteListBegin(ctx context.Context, elemType TType, size int) error
- func (p *THeaderProtocol) WriteListEnd(ctx context.Context) error
- func (p *THeaderProtocol) WriteMapBegin(ctx context.Context, keyType TType, valueType TType, size int) error
- func (p *THeaderProtocol) WriteMapEnd(ctx context.Context) error
- func (p *THeaderProtocol) WriteMessageBegin(ctx context.Context, name string, typeID TMessageType, seqID int32) error
- func (p *THeaderProtocol) WriteMessageEnd(ctx context.Context) error
- func (p *THeaderProtocol) WriteSetBegin(ctx context.Context, elemType TType, size int) error
- func (p *THeaderProtocol) WriteSetEnd(ctx context.Context) error
- func (p *THeaderProtocol) WriteString(ctx context.Context, value string) error
- func (p *THeaderProtocol) WriteStructBegin(ctx context.Context, name string) error
- func (p *THeaderProtocol) WriteStructEnd(ctx context.Context) error
- type THeaderProtocolID
- type THeaderResponseHelper
- type THeaderTransformID
- type THeaderTransport
- func (t *THeaderTransport) AddTransform(transform THeaderTransformID) error
- func (t *THeaderTransport) ClearWriteHeaders()
- func (t *THeaderTransport) Close() error
- func (t *THeaderTransport) Flush(ctx context.Context) error
- func (t *THeaderTransport) GetReadHeaders() THeaderMap
- func (t *THeaderTransport) IsOpen() bool
- func (t *THeaderTransport) Open() error
- func (t *THeaderTransport) Protocol() THeaderProtocolID
- func (t *THeaderTransport) Read(p []byte) (read int, err error)
- func (t *THeaderTransport) ReadFrame(ctx context.Context) error
- func (t *THeaderTransport) RemainingBytes() uint64
- func (t *THeaderTransport) SetTConfiguration(cfg *TConfiguration)
- func (t *THeaderTransport) SetWriteHeader(key, value string)
- func (t *THeaderTransport) Write(p []byte) (int, error)
- type THeaderTransportFactory
- type TMemoryBuffer
- type TMemoryBufferTransportFactory
- type TMessageType
- type TProcessor
- type TProcessorFactory
- type TProcessorFunction
- type TProcessorFunctionFactory
- type TProtocol
- type TProtocolException
- type TProtocolFactory
- type TResponseHelper
- type TRichTransport
- type TSerializer
- type TSerializerPool
- type TServerTransport
- type TSimpleJSONProtocol
- func (p *TSimpleJSONProtocol) Flush(ctx context.Context) (err error)
- func (p *TSimpleJSONProtocol) OutputBool(value bool) error
- func (p *TSimpleJSONProtocol) OutputElemListBegin(elemType TType, size int) error
- func (p *TSimpleJSONProtocol) OutputF64(value float64) error
- func (p *TSimpleJSONProtocol) OutputI64(value int64) error
- func (p *TSimpleJSONProtocol) OutputListBegin() error
- func (p *TSimpleJSONProtocol) OutputListEnd() error
- func (p *TSimpleJSONProtocol) OutputNull() error
- func (p *TSimpleJSONProtocol) OutputObjectBegin() error
- func (p *TSimpleJSONProtocol) OutputObjectEnd() error
- func (p *TSimpleJSONProtocol) OutputPostValue() error
- func (p *TSimpleJSONProtocol) OutputPreValue() error
- func (p *TSimpleJSONProtocol) OutputString(s string) error
- func (p *TSimpleJSONProtocol) OutputStringData(s string) error
- func (p *TSimpleJSONProtocol) ParseBase64EncodedBody() ([]byte, error)
- func (p *TSimpleJSONProtocol) ParseElemListBegin() (elemType TType, size int, e error)
- func (p *TSimpleJSONProtocol) ParseF64() (float64, bool, error)
- func (p *TSimpleJSONProtocol) ParseI64() (int64, bool, error)
- func (p *TSimpleJSONProtocol) ParseListBegin() (isNull bool, err error)
- func (p *TSimpleJSONProtocol) ParseListEnd() error
- func (p *TSimpleJSONProtocol) ParseObjectEnd() error
- func (p *TSimpleJSONProtocol) ParseObjectStart() (bool, error)
- func (p *TSimpleJSONProtocol) ParsePostValue() error
- func (p *TSimpleJSONProtocol) ParsePreValue() error
- func (p *TSimpleJSONProtocol) ParseQuotedStringBody() (string, error)
- func (p *TSimpleJSONProtocol) ParseStringBody() (string, error)
- func (p *TSimpleJSONProtocol) ReadBinary(ctx context.Context) ([]byte, error)
- func (p *TSimpleJSONProtocol) ReadBool(ctx context.Context) (bool, error)
- func (p *TSimpleJSONProtocol) ReadByte(ctx context.Context) (int8, error)
- func (p *TSimpleJSONProtocol) ReadDouble(ctx context.Context) (float64, error)
- func (p *TSimpleJSONProtocol) ReadFieldBegin(ctx context.Context) (string, TType, int16, error)
- func (p *TSimpleJSONProtocol) ReadFieldEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) ReadI16(ctx context.Context) (int16, error)
- func (p *TSimpleJSONProtocol) ReadI32(ctx context.Context) (int32, error)
- func (p *TSimpleJSONProtocol) ReadI64(ctx context.Context) (int64, error)
- func (p *TSimpleJSONProtocol) ReadListBegin(ctx context.Context) (elemType TType, size int, e error)
- func (p *TSimpleJSONProtocol) ReadListEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) ReadMapBegin(ctx context.Context) (keyType TType, valueType TType, size int, e error)
- func (p *TSimpleJSONProtocol) ReadMapEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) ReadMessageBegin(ctx context.Context) (name string, typeId TMessageType, seqId int32, err error)
- func (p *TSimpleJSONProtocol) ReadMessageEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) ReadSetBegin(ctx context.Context) (elemType TType, size int, e error)
- func (p *TSimpleJSONProtocol) ReadSetEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) ReadString(ctx context.Context) (string, error)
- func (p *TSimpleJSONProtocol) ReadStructBegin(ctx context.Context) (name string, err error)
- func (p *TSimpleJSONProtocol) ReadStructEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) SetTConfiguration(conf *TConfiguration)
- func (p *TSimpleJSONProtocol) Skip(ctx context.Context, fieldType TType) (err error)
- func (p *TSimpleJSONProtocol) Transport() TTransport
- func (p *TSimpleJSONProtocol) WriteBinary(ctx context.Context, v []byte) error
- func (p *TSimpleJSONProtocol) WriteBool(ctx context.Context, b bool) error
- func (p *TSimpleJSONProtocol) WriteByte(ctx context.Context, b int8) error
- func (p *TSimpleJSONProtocol) WriteDouble(ctx context.Context, v float64) error
- func (p *TSimpleJSONProtocol) WriteFieldBegin(ctx context.Context, name string, typeId TType, id int16) error
- func (p *TSimpleJSONProtocol) WriteFieldEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) WriteFieldStop(ctx context.Context) error
- func (p *TSimpleJSONProtocol) WriteI16(ctx context.Context, v int16) error
- func (p *TSimpleJSONProtocol) WriteI32(ctx context.Context, v int32) error
- func (p *TSimpleJSONProtocol) WriteI64(ctx context.Context, v int64) error
- func (p *TSimpleJSONProtocol) WriteListBegin(ctx context.Context, elemType TType, size int) error
- func (p *TSimpleJSONProtocol) WriteListEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) WriteMapBegin(ctx context.Context, keyType TType, valueType TType, size int) error
- func (p *TSimpleJSONProtocol) WriteMapEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) WriteMessageBegin(ctx context.Context, name string, typeId TMessageType, seqId int32) error
- func (p *TSimpleJSONProtocol) WriteMessageEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) WriteSetBegin(ctx context.Context, elemType TType, size int) error
- func (p *TSimpleJSONProtocol) WriteSetEnd(ctx context.Context) error
- func (p *TSimpleJSONProtocol) WriteString(ctx context.Context, v string) error
- func (p *TSimpleJSONProtocol) WriteStructBegin(ctx context.Context, name string) error
- func (p *TSimpleJSONProtocol) WriteStructEnd(ctx context.Context) error
- type TSimpleJSONProtocolFactory
- type TSimpleServer
- func NewTSimpleServer2(processor TProcessor, serverTransport TServerTransport) *TSimpleServer
- func NewTSimpleServer4(processor TProcessor, serverTransport TServerTransport, ...) *TSimpleServer
- func NewTSimpleServer6(processor TProcessor, serverTransport TServerTransport, ...) *TSimpleServer
- func NewTSimpleServerFactory2(processorFactory TProcessorFactory, serverTransport TServerTransport) *TSimpleServer
- func NewTSimpleServerFactory4(processorFactory TProcessorFactory, serverTransport TServerTransport, ...) *TSimpleServer
- func NewTSimpleServerFactory6(processorFactory TProcessorFactory, serverTransport TServerTransport, ...) *TSimpleServer
- func (p *TSimpleServer) AcceptLoop() error
- func (p *TSimpleServer) InputProtocolFactory() TProtocolFactory
- func (p *TSimpleServer) InputTransportFactory() TTransportFactory
- func (p *TSimpleServer) Listen() error
- func (p *TSimpleServer) OutputProtocolFactory() TProtocolFactory
- func (p *TSimpleServer) OutputTransportFactory() TTransportFactory
- func (p *TSimpleServer) ProcessorFactory() TProcessorFactory
- func (p *TSimpleServer) Serve() error
- func (p *TSimpleServer) ServerTransport() TServerTransport
- func (p *TSimpleServer) SetForwardHeaders(headers []string)
- func (p *TSimpleServer) SetLogger(logger Logger)
- func (p *TSimpleServer) Stop() error
- type TStandardClient
- func (p *TStandardClient) Call(ctx context.Context, method string, args, result TStruct) (ResponseMeta, error)
- func (p *TStandardClient) Recv(ctx context.Context, iprot TProtocol, seqId int32, method string, ...) error
- func (p *TStandardClient) Send(ctx context.Context, oprot TProtocol, seqId int32, method string, args TStruct) error
- type TStruct
- type TTransport
- type TTransportException
- type TTransportFactory
- func NewTHeaderTransportFactory(factory TTransportFactory) TTransportFactorydeprecated
- func NewTHeaderTransportFactoryConf(factory TTransportFactory, conf *TConfiguration) TTransportFactory
- func NewTTransportFactory() TTransportFactory
- func TTransportFactoryConf(delegate TTransportFactory, conf *TConfiguration) TTransportFactory
- type TType
- type TransformReader
- type TransformWriter
Constants ¶
const ( UNKNOWN_APPLICATION_EXCEPTION = 0 UNKNOWN_METHOD = 1 INVALID_MESSAGE_TYPE_EXCEPTION = 2 WRONG_METHOD_NAME = 3 BAD_SEQUENCE_ID = 4 MISSING_RESULT = 5 INTERNAL_ERROR = 6 PROTOCOL_ERROR = 7 INVALID_TRANSFORM = 8 INVALID_PROTOCOL = 9 UNSUPPORTED_CLIENT_TYPE = 10 )
const ( COMPACT_PROTOCOL_ID = 0x082 COMPACT_VERSION = 1 COMPACT_VERSION_MASK = 0x1f COMPACT_TYPE_MASK = 0x0E0 COMPACT_TYPE_BITS = 0x07 COMPACT_TYPE_SHIFT_AMOUNT = 5 )
const ( COMPACT_BOOLEAN_TRUE = 0x01 COMPACT_BOOLEAN_FALSE = 0x02 COMPACT_BYTE = 0x03 COMPACT_I16 = 0x04 COMPACT_I32 = 0x05 COMPACT_I64 = 0x06 COMPACT_DOUBLE = 0x07 COMPACT_BINARY = 0x08 COMPACT_LIST = 0x09 COMPACT_SET = 0x0A COMPACT_MAP = 0x0B COMPACT_STRUCT = 0x0C )
const ( DEFAULT_MAX_MESSAGE_SIZE = 100 * 1024 * 1024 DEFAULT_MAX_FRAME_SIZE = 16384000 DEFAULT_TBINARY_STRICT_READ = false DEFAULT_TBINARY_STRICT_WRITE = true DEFAULT_CONNECT_TIMEOUT = 0 DEFAULT_SOCKET_TIMEOUT = 0 )
Default TConfiguration values.
const ( THeaderHeaderMagic uint32 = 0x0fff0000 THeaderHeaderMask uint32 = 0xffff0000 THeaderFlagsMask uint32 = 0x0000ffff THeaderMaxFrameSize uint32 = 0x3fffffff )
Constants defined in THeader format: https://github.com/apache/thrift/blob/master/doc/specs/HeaderFormat.md
const ( VERSION_MASK = 0xffff0000 VERSION_1 = 0x80010000 )
const ( UNKNOWN_PROTOCOL_EXCEPTION = 0 INVALID_DATA = 1 NEGATIVE_SIZE = 2 SIZE_LIMIT = 3 BAD_VERSION = 4 NOT_IMPLEMENTED = 5 DEPTH_LIMIT = 6 )
const ( UNKNOWN_TRANSPORT_EXCEPTION = 0 NOT_OPEN = 1 ALREADY_OPEN = 2 TIMED_OUT = 3 END_OF_FILE = 4 )
const ( STOP = 0 VOID = 1 BOOL = 2 BYTE = 3 I08 = 3 DOUBLE = 4 I16 = 6 I32 = 8 I64 = 10 STRING = 11 UTF7 = 11 STRUCT = 12 MAP = 13 SET = 14 LIST = 15 UTF8 = 16 UTF16 = 17 )
const DEFAULT_RECURSION_DEPTH = 64
The maximum recursive depth the skip() function will traverse
Variables ¶
var ( JSON_COMMA []byte JSON_COLON []byte JSON_LBRACE []byte JSON_RBRACE []byte JSON_LBRACKET []byte JSON_RBRACKET []byte JSON_QUOTE byte JSON_QUOTE_BYTES []byte JSON_NULL []byte JSON_TRUE []byte JSON_FALSE []byte JSON_INFINITY string JSON_NEGATIVE_INFINITY string JSON_NAN string JSON_INFINITY_BYTES []byte JSON_NEGATIVE_INFINITY_BYTES []byte JSON_NAN_BYTES []byte )
var ErrAbandonRequest = errors.New("request abandoned")
ErrAbandonRequest is a special error server handler implementations can return to indicate that the request has been abandoned.
TSimpleServer will check for this error, and close the client connection instead of writing the response/error back to the client.
It shall only be used when the server handler implementation know that the client already abandoned the request (by checking that the passed in context is already canceled, for example).
var ServerConnectivityCheckInterval = time.Millisecond * 5
ServerConnectivityCheckInterval defines the ticker interval used by connectivity check in thrift compiled TProcessorFunc implementations.
It's defined as a variable instead of constant, so that thrift server implementations can change its value to control the behavior.
If it's changed to <=0, the feature will be disabled.
Functions ¶
func AddReadTHeaderToContext ¶
func AddReadTHeaderToContext(ctx context.Context, headers THeaderMap) context.Context
AddReadTHeaderToContext adds the whole THeader headers into context.
func GetReadHeaderList ¶
GetReadHeaderList returns the key list of read THeaders from the context.
func GetWriteHeaderList ¶
GetWriteHeaderList returns the key list of THeaders to write from the context.
func NewTransformWriter ¶
func NewTransformWriter(baseWriter io.Writer, transforms []THeaderTransformID) (io.WriteCloser, error)
NewTransformWriter creates a new TransformWriter with base writer and transforms.
func PrependError ¶
Prepends additional information to an error without losing the Thrift exception interface
func PropagateTConfiguration ¶
func PropagateTConfiguration(impl interface{}, cfg *TConfiguration)
PropagateTConfiguration propagates cfg to impl if impl implements TConfigurationSetter and cfg is non-nil, otherwise it does nothing.
NOTE: nil cfg is not propagated. If you want to propagate a TConfiguration with everything being default value, use &TConfiguration{} explicitly instead.
func SetReadHeaderList ¶
SetReadHeaderList sets the key list of read THeaders in the context.
func SetResponseHelper ¶
func SetResponseHelper(ctx context.Context, helper TResponseHelper) context.Context
SetResponseHelper injects TResponseHelper into the context object.
func SetWriteHeaderList ¶
SetWriteHeaderList sets the key list of THeaders to write in the context.
func SkipDefaultDepth ¶
Skips over the next data element from the provided input TProtocol object.
Types ¶
type ContextFlusher ¶
type Logger ¶
type Logger func(msg string)
Logger is a simple wrapper of a logging function.
In reality the users might actually use different logging libraries, and they are not always compatible with each other.
Logger is meant to be a simple common ground that it's easy to wrap whatever logging library they use into.
See https://issues.apache.org/jira/browse/THRIFT-4985 for the design discussion behind it.
type Numeric ¶
type Numeric interface { Int64() int64 Int32() int32 Int16() int16 Byte() byte Int() int Float64() float64 Float32() float32 String() string // contains filtered or unexported methods }
func NewNullNumeric ¶
func NewNullNumeric() Numeric
func NewNumericFromDouble ¶
func NewNumericFromI32 ¶
func NewNumericFromI64 ¶
func NewNumericFromString ¶
type ReadSizeProvider ¶
type ReadSizeProvider interface {
RemainingBytes() (num_bytes uint64)
}
type ResponseMeta ¶
type ResponseMeta struct { // The headers in the response, if any. // If the underlying transport/protocol is not THeader, this will always be nil. Headers THeaderMap }
ResponseMeta represents the metadata attached to the response.
type RichTransport ¶
type RichTransport struct {
TTransport
}
func NewTRichTransport ¶
func NewTRichTransport(trans TTransport) *RichTransport
Wraps Transport to provide TRichTransport interface
func (*RichTransport) ReadByte ¶
func (r *RichTransport) ReadByte() (c byte, err error)
func (*RichTransport) RemainingBytes ¶
func (r *RichTransport) RemainingBytes() (num_bytes uint64)
func (*RichTransport) WriteByte ¶
func (r *RichTransport) WriteByte(c byte) error
func (*RichTransport) WriteString ¶
func (r *RichTransport) WriteString(s string) (n int, err error)
type TApplicationException ¶
type TApplicationException interface { TException TypeId() int32 Read(ctx context.Context, iprot TProtocol) error Write(ctx context.Context, oprot TProtocol) error }
Application level Thrift exception
func NewTApplicationException ¶
func NewTApplicationException(type_ int32, message string) TApplicationException
type TBinaryProtocol ¶
type TBinaryProtocol struct {
// contains filtered or unexported fields
}
func NewTBinaryProtocol
deprecated
func NewTBinaryProtocol(t TTransport, strictRead, strictWrite bool) *TBinaryProtocol
Deprecated: Use NewTBinaryProtocolConf instead.
func NewTBinaryProtocolConf ¶
func NewTBinaryProtocolConf(t TTransport, conf *TConfiguration) *TBinaryProtocol
func NewTBinaryProtocolTransport
deprecated
func NewTBinaryProtocolTransport(t TTransport) *TBinaryProtocol
Deprecated: Use NewTBinaryProtocolConf instead.
func (*TBinaryProtocol) ReadBinary ¶
func (p *TBinaryProtocol) ReadBinary(ctx context.Context) ([]byte, error)
func (*TBinaryProtocol) ReadBool ¶
func (p *TBinaryProtocol) ReadBool(ctx context.Context) (bool, error)
func (*TBinaryProtocol) ReadByte ¶
func (p *TBinaryProtocol) ReadByte(ctx context.Context) (int8, error)
func (*TBinaryProtocol) ReadDouble ¶
func (p *TBinaryProtocol) ReadDouble(ctx context.Context) (value float64, err error)
func (*TBinaryProtocol) ReadFieldBegin ¶
func (*TBinaryProtocol) ReadFieldEnd ¶
func (p *TBinaryProtocol) ReadFieldEnd(ctx context.Context) error
func (*TBinaryProtocol) ReadI16 ¶
func (p *TBinaryProtocol) ReadI16(ctx context.Context) (value int16, err error)
func (*TBinaryProtocol) ReadI32 ¶
func (p *TBinaryProtocol) ReadI32(ctx context.Context) (value int32, err error)
func (*TBinaryProtocol) ReadI64 ¶
func (p *TBinaryProtocol) ReadI64(ctx context.Context) (value int64, err error)
func (*TBinaryProtocol) ReadListBegin ¶
func (*TBinaryProtocol) ReadListEnd ¶
func (p *TBinaryProtocol) ReadListEnd(ctx context.Context) error
func (*TBinaryProtocol) ReadMapBegin ¶
func (*TBinaryProtocol) ReadMapEnd ¶
func (p *TBinaryProtocol) ReadMapEnd(ctx context.Context) error
func (*TBinaryProtocol) ReadMessageBegin ¶
func (p *TBinaryProtocol) ReadMessageBegin(ctx context.Context) (name string, typeId TMessageType, seqId int32, err error)
func (*TBinaryProtocol) ReadMessageEnd ¶
func (p *TBinaryProtocol) ReadMessageEnd(ctx context.Context) error
func (*TBinaryProtocol) ReadSetBegin ¶
func (*TBinaryProtocol) ReadSetEnd ¶
func (p *TBinaryProtocol) ReadSetEnd(ctx context.Context) error
func (*TBinaryProtocol) ReadString ¶
func (p *TBinaryProtocol) ReadString(ctx context.Context) (value string, err error)
func (*TBinaryProtocol) ReadStructBegin ¶
func (p *TBinaryProtocol) ReadStructBegin(ctx context.Context) (name string, err error)
func (*TBinaryProtocol) ReadStructEnd ¶
func (p *TBinaryProtocol) ReadStructEnd(ctx context.Context) error
func (*TBinaryProtocol) SetTConfiguration ¶
func (p *TBinaryProtocol) SetTConfiguration(conf *TConfiguration)
func (*TBinaryProtocol) Skip ¶
func (p *TBinaryProtocol) Skip(ctx context.Context, fieldType TType) (err error)
func (*TBinaryProtocol) Transport ¶
func (p *TBinaryProtocol) Transport() TTransport
func (*TBinaryProtocol) WriteBinary ¶
func (p *TBinaryProtocol) WriteBinary(ctx context.Context, value []byte) error
func (*TBinaryProtocol) WriteBool ¶
func (p *TBinaryProtocol) WriteBool(ctx context.Context, value bool) error
func (*TBinaryProtocol) WriteByte ¶
func (p *TBinaryProtocol) WriteByte(ctx context.Context, value int8) error
func (*TBinaryProtocol) WriteDouble ¶
func (p *TBinaryProtocol) WriteDouble(ctx context.Context, value float64) error
func (*TBinaryProtocol) WriteFieldBegin ¶
func (*TBinaryProtocol) WriteFieldEnd ¶
func (p *TBinaryProtocol) WriteFieldEnd(ctx context.Context) error
func (*TBinaryProtocol) WriteFieldStop ¶
func (p *TBinaryProtocol) WriteFieldStop(ctx context.Context) error
func (*TBinaryProtocol) WriteI16 ¶
func (p *TBinaryProtocol) WriteI16(ctx context.Context, value int16) error
func (*TBinaryProtocol) WriteI32 ¶
func (p *TBinaryProtocol) WriteI32(ctx context.Context, value int32) error
func (*TBinaryProtocol) WriteI64 ¶
func (p *TBinaryProtocol) WriteI64(ctx context.Context, value int64) error
func (*TBinaryProtocol) WriteListBegin ¶
func (*TBinaryProtocol) WriteListEnd ¶
func (p *TBinaryProtocol) WriteListEnd(ctx context.Context) error
func (*TBinaryProtocol) WriteMapBegin ¶
func (*TBinaryProtocol) WriteMapEnd ¶
func (p *TBinaryProtocol) WriteMapEnd(ctx context.Context) error
func (*TBinaryProtocol) WriteMessageBegin ¶
func (p *TBinaryProtocol) WriteMessageBegin(ctx context.Context, name string, typeId TMessageType, seqId int32) error
func (*TBinaryProtocol) WriteMessageEnd ¶
func (p *TBinaryProtocol) WriteMessageEnd(ctx context.Context) error
func (*TBinaryProtocol) WriteSetBegin ¶
func (*TBinaryProtocol) WriteSetEnd ¶
func (p *TBinaryProtocol) WriteSetEnd(ctx context.Context) error
func (*TBinaryProtocol) WriteString ¶
func (p *TBinaryProtocol) WriteString(ctx context.Context, value string) error
func (*TBinaryProtocol) WriteStructBegin ¶
func (p *TBinaryProtocol) WriteStructBegin(ctx context.Context, name string) error
func (*TBinaryProtocol) WriteStructEnd ¶
func (p *TBinaryProtocol) WriteStructEnd(ctx context.Context) error
type TBinaryProtocolFactory ¶
type TBinaryProtocolFactory struct {
// contains filtered or unexported fields
}
func NewTBinaryProtocolFactory
deprecated
func NewTBinaryProtocolFactory(strictRead, strictWrite bool) *TBinaryProtocolFactory
Deprecated: Use NewTBinaryProtocolFactoryConf instead.
func NewTBinaryProtocolFactoryConf ¶
func NewTBinaryProtocolFactoryConf(conf *TConfiguration) *TBinaryProtocolFactory
func NewTBinaryProtocolFactoryDefault
deprecated
func NewTBinaryProtocolFactoryDefault() *TBinaryProtocolFactory
Deprecated: Use NewTBinaryProtocolFactoryConf instead.
func (*TBinaryProtocolFactory) GetProtocol ¶
func (p *TBinaryProtocolFactory) GetProtocol(t TTransport) TProtocol
func (*TBinaryProtocolFactory) SetTConfiguration ¶
func (p *TBinaryProtocolFactory) SetTConfiguration(conf *TConfiguration)
type TCompactProtocol ¶
type TCompactProtocol struct {
// contains filtered or unexported fields
}
func NewTCompactProtocol
deprecated
func NewTCompactProtocol(trans TTransport) *TCompactProtocol
Deprecated: Use NewTCompactProtocolConf instead.
func NewTCompactProtocolConf ¶
func NewTCompactProtocolConf(trans TTransport, conf *TConfiguration) *TCompactProtocol
func (*TCompactProtocol) ReadBinary ¶
func (p *TCompactProtocol) ReadBinary(ctx context.Context) (value []byte, err error)
Read a []byte from the wire.
func (*TCompactProtocol) ReadBool ¶
func (p *TCompactProtocol) ReadBool(ctx context.Context) (value bool, err error)
Read a boolean off the wire. If this is a boolean field, the value should already have been read during readFieldBegin, so we'll just consume the pre-stored value. Otherwise, read a byte.
func (*TCompactProtocol) ReadByte ¶
func (p *TCompactProtocol) ReadByte(ctx context.Context) (int8, error)
Read a single byte off the wire. Nothing interesting here.
func (*TCompactProtocol) ReadDouble ¶
func (p *TCompactProtocol) ReadDouble(ctx context.Context) (value float64, err error)
No magic here - just read a double off the wire.
func (*TCompactProtocol) ReadFieldBegin ¶
func (p *TCompactProtocol) ReadFieldBegin(ctx context.Context) (name string, typeId TType, id int16, err error)
Read a field header off the wire.
func (*TCompactProtocol) ReadFieldEnd ¶
func (p *TCompactProtocol) ReadFieldEnd(ctx context.Context) error
func (*TCompactProtocol) ReadI16 ¶
func (p *TCompactProtocol) ReadI16(ctx context.Context) (value int16, err error)
Read an i16 from the wire as a zigzag varint.
func (*TCompactProtocol) ReadI32 ¶
func (p *TCompactProtocol) ReadI32(ctx context.Context) (value int32, err error)
Read an i32 from the wire as a zigzag varint.
func (*TCompactProtocol) ReadI64 ¶
func (p *TCompactProtocol) ReadI64(ctx context.Context) (value int64, err error)
Read an i64 from the wire as a zigzag varint.
func (*TCompactProtocol) ReadListBegin ¶
Read a list header off the wire. If the list size is 0-14, the size will be packed into the element type header. If it's a longer list, the 4 MSB of the element type header will be 0xF, and a varint will follow with the true size.
func (*TCompactProtocol) ReadListEnd ¶
func (p *TCompactProtocol) ReadListEnd(ctx context.Context) error
func (*TCompactProtocol) ReadMapBegin ¶
func (p *TCompactProtocol) ReadMapBegin(ctx context.Context) (keyType TType, valueType TType, size int, err error)
Read a map header off the wire. If the size is zero, skip reading the key and value type. This means that 0-length maps will yield TMaps without the "correct" types.
func (*TCompactProtocol) ReadMapEnd ¶
func (p *TCompactProtocol) ReadMapEnd(ctx context.Context) error
func (*TCompactProtocol) ReadMessageBegin ¶
func (p *TCompactProtocol) ReadMessageBegin(ctx context.Context) (name string, typeId TMessageType, seqId int32, err error)
Read a message header.
func (*TCompactProtocol) ReadMessageEnd ¶
func (p *TCompactProtocol) ReadMessageEnd(ctx context.Context) error
func (*TCompactProtocol) ReadSetBegin ¶
Read a set header off the wire. If the set size is 0-14, the size will be packed into the element type header. If it's a longer set, the 4 MSB of the element type header will be 0xF, and a varint will follow with the true size.
func (*TCompactProtocol) ReadSetEnd ¶
func (p *TCompactProtocol) ReadSetEnd(ctx context.Context) error
func (*TCompactProtocol) ReadString ¶
func (p *TCompactProtocol) ReadString(ctx context.Context) (value string, err error)
Reads a []byte (via readBinary), and then UTF-8 decodes it.
func (*TCompactProtocol) ReadStructBegin ¶
func (p *TCompactProtocol) ReadStructBegin(ctx context.Context) (name string, err error)
Read a struct begin. There's nothing on the wire for this, but it is our opportunity to push a new struct begin marker onto the field stack.
func (*TCompactProtocol) ReadStructEnd ¶
func (p *TCompactProtocol) ReadStructEnd(ctx context.Context) error
Doesn't actually consume any wire data, just removes the last field for this struct from the field stack.
func (*TCompactProtocol) SetTConfiguration ¶
func (p *TCompactProtocol) SetTConfiguration(conf *TConfiguration)
func (*TCompactProtocol) Skip ¶
func (p *TCompactProtocol) Skip(ctx context.Context, fieldType TType) (err error)
func (*TCompactProtocol) Transport ¶
func (p *TCompactProtocol) Transport() TTransport
func (*TCompactProtocol) WriteBinary ¶
func (p *TCompactProtocol) WriteBinary(ctx context.Context, bin []byte) error
Write a byte array, using a varint for the size.
func (*TCompactProtocol) WriteBool ¶
func (p *TCompactProtocol) WriteBool(ctx context.Context, value bool) error
func (*TCompactProtocol) WriteByte ¶
func (p *TCompactProtocol) WriteByte(ctx context.Context, value int8) error
Write a byte. Nothing to see here!
func (*TCompactProtocol) WriteDouble ¶
func (p *TCompactProtocol) WriteDouble(ctx context.Context, value float64) error
Write a double to the wire as 8 bytes.
func (*TCompactProtocol) WriteFieldBegin ¶
func (*TCompactProtocol) WriteFieldEnd ¶
func (p *TCompactProtocol) WriteFieldEnd(ctx context.Context) error
func (*TCompactProtocol) WriteFieldStop ¶
func (p *TCompactProtocol) WriteFieldStop(ctx context.Context) error
func (*TCompactProtocol) WriteI16 ¶
func (p *TCompactProtocol) WriteI16(ctx context.Context, value int16) error
Write an I16 as a zigzag varint.
func (*TCompactProtocol) WriteI32 ¶
func (p *TCompactProtocol) WriteI32(ctx context.Context, value int32) error
Write an i32 as a zigzag varint.
func (*TCompactProtocol) WriteI64 ¶
func (p *TCompactProtocol) WriteI64(ctx context.Context, value int64) error
Write an i64 as a zigzag varint.
func (*TCompactProtocol) WriteListBegin ¶
Write a list header.
func (*TCompactProtocol) WriteListEnd ¶
func (p *TCompactProtocol) WriteListEnd(ctx context.Context) error
func (*TCompactProtocol) WriteMapBegin ¶
func (*TCompactProtocol) WriteMapEnd ¶
func (p *TCompactProtocol) WriteMapEnd(ctx context.Context) error
func (*TCompactProtocol) WriteMessageBegin ¶
func (p *TCompactProtocol) WriteMessageBegin(ctx context.Context, name string, typeId TMessageType, seqid int32) error
Write a message header to the wire. Compact Protocol messages contain the protocol version so we can migrate forwards in the future if need be.
func (*TCompactProtocol) WriteMessageEnd ¶
func (p *TCompactProtocol) WriteMessageEnd(ctx context.Context) error
func (*TCompactProtocol) WriteSetBegin ¶
Write a set header.
func (*TCompactProtocol) WriteSetEnd ¶
func (p *TCompactProtocol) WriteSetEnd(ctx context.Context) error
func (*TCompactProtocol) WriteString ¶
func (p *TCompactProtocol) WriteString(ctx context.Context, value string) error
Write a string to the wire with a varint size preceding.
func (*TCompactProtocol) WriteStructBegin ¶
func (p *TCompactProtocol) WriteStructBegin(ctx context.Context, name string) error
Write a struct begin. This doesn't actually put anything on the wire. We use it as an opportunity to put special placeholder markers on the field stack so we can get the field id deltas correct.
func (*TCompactProtocol) WriteStructEnd ¶
func (p *TCompactProtocol) WriteStructEnd(ctx context.Context) error
Write a struct end. This doesn't actually put anything on the wire. We use this as an opportunity to pop the last field from the current struct off of the field stack.
type TCompactProtocolFactory ¶
type TCompactProtocolFactory struct {
// contains filtered or unexported fields
}
func NewTCompactProtocolFactory
deprecated
func NewTCompactProtocolFactory() *TCompactProtocolFactory
Deprecated: Use NewTCompactProtocolFactoryConf instead.
func NewTCompactProtocolFactoryConf ¶
func NewTCompactProtocolFactoryConf(conf *TConfiguration) *TCompactProtocolFactory
func (*TCompactProtocolFactory) GetProtocol ¶
func (p *TCompactProtocolFactory) GetProtocol(trans TTransport) TProtocol
func (*TCompactProtocolFactory) SetTConfiguration ¶
func (p *TCompactProtocolFactory) SetTConfiguration(conf *TConfiguration)
type TConfiguration ¶
type TConfiguration struct { // If <= 0, DEFAULT_MAX_MESSAGE_SIZE will be used instead. MaxMessageSize int32 // If <= 0, DEFAULT_MAX_FRAME_SIZE will be used instead. // // Also if MaxMessageSize < MaxFrameSize, // MaxMessageSize will be used instead. MaxFrameSize int32 // Connect and socket timeouts to be used by TSocket and TSSLSocket. // // 0 means no timeout. // // If <0, DEFAULT_CONNECT_TIMEOUT and DEFAULT_SOCKET_TIMEOUT will be // used. ConnectTimeout time.Duration SocketTimeout time.Duration // TLS config to be used by TSSLSocket. TLSConfig *tls.Config // Strict read/write configurations for TBinaryProtocol. // // BoolPtr helper function is available to use literal values. TBinaryStrictRead *bool TBinaryStrictWrite *bool // The wrapped protocol id to be used in THeader transport/protocol. // // THeaderProtocolIDPtr and THeaderProtocolIDPtrMust helper functions // are provided to help filling this value. THeaderProtocolID *THeaderProtocolID // contains filtered or unexported fields }
TConfiguration defines some configurations shared between TTransport, TProtocol, TTransportFactory, TProtocolFactory, and other implementations.
When constructing TConfiguration, you only need to specify the non-default fields. All zero values have sane default values.
Not all configurations defined are applicable to all implementations. Implementations are free to ignore the configurations not applicable to them.
All functions attached to this type are nil-safe.
See 1 for spec.
NOTE: When using TConfiguration, fill in all the configurations you want to set across the stack, not only the ones you want to set in the immediate TTransport/TProtocol.
For example, say you want to migrate this old code into using TConfiguration:
sccket := thrift.NewTSocketTimeout("host:port", time.Second) transFactory := thrift.NewTFramedTransportFactoryMaxLength( thrift.NewTTransportFactory(), 1024 * 1024 * 256, ) protoFactory := thrift.NewTBinaryProtocolFactory(true, true)
This is the wrong way to do it because in the end the TConfiguration used by socket and transFactory will be overwritten by the one used by protoFactory because of TConfiguration propagation:
// bad example, DO NOT USE sccket := thrift.NewTSocketConf("host:port", &thrift.TConfiguration{ ConnectTimeout: time.Second, SocketTimeout: time.Second, }) transFactory := thrift.NewTFramedTransportFactoryConf( thrift.NewTTransportFactory(), &thrift.TConfiguration{ MaxFrameSize: 1024 * 1024 * 256, }, ) protoFactory := thrift.NewTBinaryProtocolFactoryConf(&thrift.TConfiguration{ TBinaryStrictRead: thrift.BoolPtr(true), TBinaryStrictWrite: thrift.BoolPtr(true), })
This is the correct way to do it:
conf := &thrift.TConfiguration{ ConnectTimeout: time.Second, SocketTimeout: time.Second, MaxFrameSize: 1024 * 1024 * 256, TBinaryStrictRead: thrift.BoolPtr(true), TBinaryStrictWrite: thrift.BoolPtr(true), } sccket := thrift.NewTSocketConf("host:port", conf) transFactory := thrift.NewTFramedTransportFactoryConf(thrift.NewTTransportFactory(), conf) protoFactory := thrift.NewTBinaryProtocolFactoryConf(conf)
func (*TConfiguration) GetConnectTimeout ¶
func (tc *TConfiguration) GetConnectTimeout() time.Duration
GetConnectTimeout returns the connect timeout should be used by TSocket and TSSLSocket.
It's nil-safe. If tc is nil, DEFAULT_CONNECT_TIMEOUT will be returned instead.
func (*TConfiguration) GetMaxFrameSize ¶
func (tc *TConfiguration) GetMaxFrameSize() int32
GetMaxFrameSize returns the max frame size an implementation should follow.
It's nil-safe. DEFAULT_MAX_FRAME_SIZE will be returned if tc is nil.
If the configured max message size is smaller than the configured max frame size, the smaller one will be returned instead.
func (*TConfiguration) GetMaxMessageSize ¶
func (tc *TConfiguration) GetMaxMessageSize() int32
GetMaxMessageSize returns the max message size an implementation should follow.
It's nil-safe. DEFAULT_MAX_MESSAGE_SIZE will be returned if tc is nil.
func (*TConfiguration) GetSocketTimeout ¶
func (tc *TConfiguration) GetSocketTimeout() time.Duration
GetSocketTimeout returns the socket timeout should be used by TSocket and TSSLSocket.
It's nil-safe. If tc is nil, DEFAULT_SOCKET_TIMEOUT will be returned instead.
func (*TConfiguration) GetTBinaryStrictRead ¶
func (tc *TConfiguration) GetTBinaryStrictRead() bool
GetTBinaryStrictRead returns the strict read configuration TBinaryProtocol should follow.
It's nil-safe. DEFAULT_TBINARY_STRICT_READ will be returned if either tc or tc.TBinaryStrictRead is nil.
func (*TConfiguration) GetTBinaryStrictWrite ¶
func (tc *TConfiguration) GetTBinaryStrictWrite() bool
GetTBinaryStrictWrite returns the strict read configuration TBinaryProtocol should follow.
It's nil-safe. DEFAULT_TBINARY_STRICT_WRITE will be returned if either tc or tc.TBinaryStrictWrite is nil.
func (*TConfiguration) GetTHeaderProtocolID ¶
func (tc *TConfiguration) GetTHeaderProtocolID() THeaderProtocolID
GetTHeaderProtocolID returns the THeaderProtocolID should be used by THeaderProtocol clients (for servers, they always use the same one as the client instead).
It's nil-safe. If either tc or tc.THeaderProtocolID is nil, THeaderProtocolDefault will be returned instead. THeaderProtocolDefault will also be returned if configured value is invalid.
func (*TConfiguration) GetTLSConfig ¶
func (tc *TConfiguration) GetTLSConfig() *tls.Config
GetTLSConfig returns the tls config should be used by TSSLSocket.
It's nil-safe. If tc is nil, nil will be returned instead.
type TConfigurationSetter ¶
type TConfigurationSetter interface {
SetTConfiguration(*TConfiguration)
}
TConfigurationSetter is an optional interface TProtocol, TTransport, TProtocolFactory, TTransportFactory, and other implementations can implement.
It's intended to be called during intializations. The behavior of calling SetTConfiguration on a TTransport/TProtocol in the middle of a message is undefined: It may or may not change the behavior of the current processing message, and it may even cause the current message to fail.
Note for implementations: SetTConfiguration might be called multiple times with the same value in quick successions due to the implementation of the propagation. Implementations should make SetTConfiguration as simple as possible (usually just overwrite the stored configuration and propagate it to the wrapped TTransports/TProtocols).
type TException ¶
type TException interface { error TExceptionType() TExceptionType }
Generic Thrift exception
func WrapTException ¶
func WrapTException(err error) TException
WrapTException wraps an error into TException.
If err is nil or already TException, it's returned as-is. Otherwise it will be wraped into TException with TExceptionType() returning TExceptionTypeUnknown, and Unwrap() returning the original error.
type TExceptionType ¶
type TExceptionType byte
TExceptionType is an enum type to categorize different "subclasses" of TExceptions.
const ( TExceptionTypeUnknown TExceptionType = iota TExceptionTypeCompiled // TExceptions defined in thrift files and generated by thrift compiler TExceptionTypeApplication // TApplicationExceptions TExceptionTypeProtocol // TProtocolExceptions TExceptionTypeTransport // TTransportExceptions )
TExceptionType values
type THeaderInfoType ¶
type THeaderInfoType int32
THeaderInfoType is the type id of the info headers.
const (
InfoKeyValue THeaderInfoType // 1
)
Supported THeaderInfoType values.
type THeaderMap ¶
THeaderMap is the type of the header map in THeader transport.
type THeaderProtocol ¶
type THeaderProtocol struct {
// contains filtered or unexported fields
}
THeaderProtocol is a thrift protocol that implements THeader: https://github.com/apache/thrift/blob/master/doc/specs/HeaderFormat.md
It supports either binary or compact protocol as the wrapped protocol.
Most of the THeader handlings are happening inside THeaderTransport.
func NewTHeaderProtocol
deprecated
func NewTHeaderProtocol(trans TTransport) *THeaderProtocol
Deprecated: Use NewTHeaderProtocolConf instead.
func NewTHeaderProtocolConf ¶
func NewTHeaderProtocolConf(trans TTransport, conf *TConfiguration) *THeaderProtocol
NewTHeaderProtocolConf creates a new THeaderProtocol from the underlying transport with given TConfiguration.
The passed in transport will be wrapped with THeaderTransport.
Note that THeaderTransport handles frame and zlib by itself, so the underlying transport should be a raw socket transports (TSocket or TSSLSocket), instead of rich transports like TZlibTransport or TFramedTransport.
func (*THeaderProtocol) AddTransform ¶
func (p *THeaderProtocol) AddTransform(transform THeaderTransformID) error
AddTransform add a transform for writing.
func (*THeaderProtocol) ClearWriteHeaders ¶
func (p *THeaderProtocol) ClearWriteHeaders()
ClearWriteHeaders clears all write headers previously set.
func (*THeaderProtocol) GetReadHeaders ¶
func (p *THeaderProtocol) GetReadHeaders() THeaderMap
GetReadHeaders returns the THeaderMap read from transport.
func (*THeaderProtocol) ReadBinary ¶
func (p *THeaderProtocol) ReadBinary(ctx context.Context) (value []byte, err error)
func (*THeaderProtocol) ReadBool ¶
func (p *THeaderProtocol) ReadBool(ctx context.Context) (value bool, err error)
func (*THeaderProtocol) ReadByte ¶
func (p *THeaderProtocol) ReadByte(ctx context.Context) (value int8, err error)
func (*THeaderProtocol) ReadDouble ¶
func (p *THeaderProtocol) ReadDouble(ctx context.Context) (value float64, err error)
func (*THeaderProtocol) ReadFieldBegin ¶
func (*THeaderProtocol) ReadFieldEnd ¶
func (p *THeaderProtocol) ReadFieldEnd(ctx context.Context) error
func (*THeaderProtocol) ReadFrame ¶
func (p *THeaderProtocol) ReadFrame(ctx context.Context) error
ReadFrame calls underlying THeaderTransport's ReadFrame function.
func (*THeaderProtocol) ReadI16 ¶
func (p *THeaderProtocol) ReadI16(ctx context.Context) (value int16, err error)
func (*THeaderProtocol) ReadI32 ¶
func (p *THeaderProtocol) ReadI32(ctx context.Context) (value int32, err error)
func (*THeaderProtocol) ReadI64 ¶
func (p *THeaderProtocol) ReadI64(ctx context.Context) (value int64, err error)
func (*THeaderProtocol) ReadListBegin ¶
func (*THeaderProtocol) ReadListEnd ¶
func (p *THeaderProtocol) ReadListEnd(ctx context.Context) error
func (*THeaderProtocol) ReadMapBegin ¶
func (*THeaderProtocol) ReadMapEnd ¶
func (p *THeaderProtocol) ReadMapEnd(ctx context.Context) error
func (*THeaderProtocol) ReadMessageBegin ¶
func (p *THeaderProtocol) ReadMessageBegin(ctx context.Context) (name string, typeID TMessageType, seqID int32, err error)
func (*THeaderProtocol) ReadMessageEnd ¶
func (p *THeaderProtocol) ReadMessageEnd(ctx context.Context) error
func (*THeaderProtocol) ReadSetBegin ¶
func (*THeaderProtocol) ReadSetEnd ¶
func (p *THeaderProtocol) ReadSetEnd(ctx context.Context) error
func (*THeaderProtocol) ReadString ¶
func (p *THeaderProtocol) ReadString(ctx context.Context) (value string, err error)
func (*THeaderProtocol) ReadStructBegin ¶
func (p *THeaderProtocol) ReadStructBegin(ctx context.Context) (name string, err error)
func (*THeaderProtocol) ReadStructEnd ¶
func (p *THeaderProtocol) ReadStructEnd(ctx context.Context) error
func (*THeaderProtocol) SetTConfiguration ¶
func (p *THeaderProtocol) SetTConfiguration(cfg *TConfiguration)
SetTConfiguration implements TConfigurationSetter.
func (*THeaderProtocol) SetWriteHeader ¶
func (p *THeaderProtocol) SetWriteHeader(key, value string)
SetWriteHeader sets a header for write.
func (*THeaderProtocol) Skip ¶
func (p *THeaderProtocol) Skip(ctx context.Context, fieldType TType) error
func (*THeaderProtocol) Transport ¶
func (p *THeaderProtocol) Transport() TTransport
Transport returns the underlying transport.
It's guaranteed to be of type *THeaderTransport.
func (*THeaderProtocol) WriteBinary ¶
func (p *THeaderProtocol) WriteBinary(ctx context.Context, value []byte) error
func (*THeaderProtocol) WriteBool ¶
func (p *THeaderProtocol) WriteBool(ctx context.Context, value bool) error
func (*THeaderProtocol) WriteByte ¶
func (p *THeaderProtocol) WriteByte(ctx context.Context, value int8) error
func (*THeaderProtocol) WriteDouble ¶
func (p *THeaderProtocol) WriteDouble(ctx context.Context, value float64) error
func (*THeaderProtocol) WriteFieldBegin ¶
func (*THeaderProtocol) WriteFieldEnd ¶
func (p *THeaderProtocol) WriteFieldEnd(ctx context.Context) error
func (*THeaderProtocol) WriteFieldStop ¶
func (p *THeaderProtocol) WriteFieldStop(ctx context.Context) error
func (*THeaderProtocol) WriteI16 ¶
func (p *THeaderProtocol) WriteI16(ctx context.Context, value int16) error
func (*THeaderProtocol) WriteI32 ¶
func (p *THeaderProtocol) WriteI32(ctx context.Context, value int32) error
func (*THeaderProtocol) WriteI64 ¶
func (p *THeaderProtocol) WriteI64(ctx context.Context, value int64) error
func (*THeaderProtocol) WriteListBegin ¶
func (*THeaderProtocol) WriteListEnd ¶
func (p *THeaderProtocol) WriteListEnd(ctx context.Context) error
func (*THeaderProtocol) WriteMapBegin ¶
func (*THeaderProtocol) WriteMapEnd ¶
func (p *THeaderProtocol) WriteMapEnd(ctx context.Context) error
func (*THeaderProtocol) WriteMessageBegin ¶
func (p *THeaderProtocol) WriteMessageBegin(ctx context.Context, name string, typeID TMessageType, seqID int32) error
func (*THeaderProtocol) WriteMessageEnd ¶
func (p *THeaderProtocol) WriteMessageEnd(ctx context.Context) error
func (*THeaderProtocol) WriteSetBegin ¶
func (*THeaderProtocol) WriteSetEnd ¶
func (p *THeaderProtocol) WriteSetEnd(ctx context.Context) error
func (*THeaderProtocol) WriteString ¶
func (p *THeaderProtocol) WriteString(ctx context.Context, value string) error
func (*THeaderProtocol) WriteStructBegin ¶
func (p *THeaderProtocol) WriteStructBegin(ctx context.Context, name string) error
func (*THeaderProtocol) WriteStructEnd ¶
func (p *THeaderProtocol) WriteStructEnd(ctx context.Context) error
type THeaderProtocolID ¶
type THeaderProtocolID int32
THeaderProtocolID is the wrapped protocol id used in THeader.
const ( THeaderProtocolBinary THeaderProtocolID = 0x00 THeaderProtocolCompact THeaderProtocolID = 0x02 THeaderProtocolDefault = THeaderProtocolBinary )
Supported THeaderProtocolID values.
func THeaderProtocolIDPtr ¶
func THeaderProtocolIDPtr(id THeaderProtocolID) (*THeaderProtocolID, error)
THeaderProtocolIDPtr validates and returns the pointer to id.
If id is not a valid THeaderProtocolID, a pointer to THeaderProtocolDefault and the validation error will be returned.
func THeaderProtocolIDPtrMust ¶
func THeaderProtocolIDPtrMust(id THeaderProtocolID) *THeaderProtocolID
THeaderProtocolIDPtrMust validates and returns the pointer to id.
It's similar to THeaderProtocolIDPtr, but it panics on validation errors instead of returning them.
func (THeaderProtocolID) GetProtocol ¶
func (id THeaderProtocolID) GetProtocol(trans TTransport) (TProtocol, error)
GetProtocol gets the corresponding TProtocol from the wrapped protocol id.
func (THeaderProtocolID) Validate ¶
func (id THeaderProtocolID) Validate() error
Validate checks whether the THeaderProtocolID is a valid/supported one.
type THeaderResponseHelper ¶
type THeaderResponseHelper struct {
// contains filtered or unexported fields
}
THeaderResponseHelper defines THeader related TResponseHelper functions.
The zero value of *THeaderResponseHelper is valid with all helper functions being no-op.
func NewTHeaderResponseHelper ¶
func NewTHeaderResponseHelper(proto TProtocol) *THeaderResponseHelper
NewTHeaderResponseHelper creates a new THeaderResponseHelper from the underlying TProtocol.
func (*THeaderResponseHelper) ClearHeaders ¶
func (h *THeaderResponseHelper) ClearHeaders()
ClearHeaders clears all the response headers previously set.
It's no-op if the underlying protocol/transport does not support THeader.
func (*THeaderResponseHelper) SetHeader ¶
func (h *THeaderResponseHelper) SetHeader(key, value string)
SetHeader sets a response header.
It's no-op if the underlying protocol/transport does not support THeader.
type THeaderTransformID ¶
type THeaderTransformID int32
THeaderTransformID defines the numeric id of the transform used.
const ( TransformNone THeaderTransformID = iota // 0, no special handling TransformZlib // 1, zlib )
THeaderTransformID values.
Values not defined here are not currently supported, namely HMAC and Snappy.
type THeaderTransport ¶
type THeaderTransport struct { SequenceID int32 Flags uint32 // contains filtered or unexported fields }
THeaderTransport is a Transport mode that implements THeader.
Note that THeaderTransport handles frame and zlib by itself, so the underlying transport should be a raw socket transports (TSocket or TSSLSocket), instead of rich transports like TZlibTransport or TFramedTransport.
func NewTHeaderTransport
deprecated
func NewTHeaderTransport(trans TTransport) *THeaderTransport
Deprecated: Use NewTHeaderTransportConf instead.
func NewTHeaderTransportConf ¶
func NewTHeaderTransportConf(trans TTransport, conf *TConfiguration) *THeaderTransport
NewTHeaderTransportConf creates THeaderTransport from the underlying transport, with given TConfiguration attached.
If trans is already a *THeaderTransport, it will be returned as is, but with TConfiguration overridden by the value passed in.
The protocol ID in TConfiguration is only useful for client transports. For servers, the protocol ID will be overridden again to the one set by the client, to ensure that servers always speak the same dialect as the client.
func (*THeaderTransport) AddTransform ¶
func (t *THeaderTransport) AddTransform(transform THeaderTransformID) error
AddTransform add a transform for writing.
func (*THeaderTransport) ClearWriteHeaders ¶
func (t *THeaderTransport) ClearWriteHeaders()
ClearWriteHeaders clears all write headers previously set.
func (*THeaderTransport) Close ¶
func (t *THeaderTransport) Close() error
Close closes the transport, along with its underlying transport.
func (*THeaderTransport) Flush ¶
func (t *THeaderTransport) Flush(ctx context.Context) error
Flush writes the appropriate header and the write buffer to the underlying transport.
func (*THeaderTransport) GetReadHeaders ¶
func (t *THeaderTransport) GetReadHeaders() THeaderMap
GetReadHeaders returns the THeaderMap read from transport.
func (*THeaderTransport) IsOpen ¶
func (t *THeaderTransport) IsOpen() bool
IsOpen calls the underlying transport's IsOpen function.
func (*THeaderTransport) Open ¶
func (t *THeaderTransport) Open() error
Open calls the underlying transport's Open function.
func (*THeaderTransport) Protocol ¶
func (t *THeaderTransport) Protocol() THeaderProtocolID
Protocol returns the wrapped protocol id used in this THeaderTransport.
func (*THeaderTransport) ReadFrame ¶
func (t *THeaderTransport) ReadFrame(ctx context.Context) error
ReadFrame tries to read the frame header, guess the client type, and handle unframed clients.
func (*THeaderTransport) RemainingBytes ¶
func (t *THeaderTransport) RemainingBytes() uint64
RemainingBytes calls underlying transport's RemainingBytes.
Even in framed cases, because of all the possible compression transforms involved, the remaining frame size is likely to be different from the actual remaining readable bytes, so we don't bother to keep tracking the remaining frame size by ourselves and just use the underlying transport's RemainingBytes directly.
func (*THeaderTransport) SetTConfiguration ¶
func (t *THeaderTransport) SetTConfiguration(cfg *TConfiguration)
SetTConfiguration implements TConfigurationSetter.
func (*THeaderTransport) SetWriteHeader ¶
func (t *THeaderTransport) SetWriteHeader(key, value string)
SetWriteHeader sets a header for write.
type THeaderTransportFactory ¶
type THeaderTransportFactory struct { // The underlying factory, could be nil. Factory TTransportFactory // contains filtered or unexported fields }
THeaderTransportFactory is a TTransportFactory implementation to create THeaderTransport.
It also implements TConfigurationSetter.
func (*THeaderTransportFactory) GetTransport ¶
func (f *THeaderTransportFactory) GetTransport(trans TTransport) (TTransport, error)
GetTransport implements TTransportFactory.
func (*THeaderTransportFactory) SetTConfiguration ¶
func (f *THeaderTransportFactory) SetTConfiguration(cfg *TConfiguration)
SetTConfiguration implements TConfigurationSetter.
type TMemoryBuffer ¶
Memory buffer-based implementation of the TTransport interface.
func NewTMemoryBuffer ¶
func NewTMemoryBuffer() *TMemoryBuffer
func NewTMemoryBufferLen ¶
func NewTMemoryBufferLen(size int) *TMemoryBuffer
func (*TMemoryBuffer) Close ¶
func (p *TMemoryBuffer) Close() error
func (*TMemoryBuffer) Flush ¶
func (p *TMemoryBuffer) Flush(ctx context.Context) error
Flushing a memory buffer is a no-op
func (*TMemoryBuffer) IsOpen ¶
func (p *TMemoryBuffer) IsOpen() bool
func (*TMemoryBuffer) Open ¶
func (p *TMemoryBuffer) Open() error
func (*TMemoryBuffer) RemainingBytes ¶
func (p *TMemoryBuffer) RemainingBytes() (num_bytes uint64)
type TMemoryBufferTransportFactory ¶
type TMemoryBufferTransportFactory struct {
// contains filtered or unexported fields
}
func NewTMemoryBufferTransportFactory ¶
func NewTMemoryBufferTransportFactory(size int) *TMemoryBufferTransportFactory
func (*TMemoryBufferTransportFactory) GetTransport ¶
func (p *TMemoryBufferTransportFactory) GetTransport(trans TTransport) (TTransport, error)
type TMessageType ¶
type TMessageType int32
Message type constants in the Thrift protocol.
const ( INVALID_TMESSAGE_TYPE TMessageType = 0 CALL TMessageType = 1 REPLY TMessageType = 2 EXCEPTION TMessageType = 3 ONEWAY TMessageType = 4 )
type TProcessor ¶
type TProcessor interface { Process(ctx context.Context, in, out TProtocol) (bool, TException) // ProcessorMap returns a map of thrift method names to TProcessorFunctions. ProcessorMap() map[string]TProcessorFunction // AddToProcessorMap adds the given TProcessorFunction to the internal // processor map at the given key. // // If one is already set at the given key, it will be replaced with the new // TProcessorFunction. AddToProcessorMap(string, TProcessorFunction) }
A processor is a generic object which operates upon an input stream and writes to some output stream.
type TProcessorFactory ¶
type TProcessorFactory interface {
GetProcessor(trans TTransport) TProcessor
}
The default processor factory just returns a singleton instance.
func NewTProcessorFactory ¶
func NewTProcessorFactory(p TProcessor) TProcessorFactory
type TProcessorFunction ¶
type TProcessorFunctionFactory ¶
type TProcessorFunctionFactory interface {
GetProcessorFunction(trans TTransport) TProcessorFunction
}
*
- The default processor factory just returns a singleton
- instance.
func NewTProcessorFunctionFactory ¶
func NewTProcessorFunctionFactory(p TProcessorFunction) TProcessorFunctionFactory
type TProtocol ¶
type TProtocol interface { WriteMessageBegin(ctx context.Context, name string, typeId TMessageType, seqid int32) error WriteMessageEnd(ctx context.Context) error WriteStructBegin(ctx context.Context, name string) error WriteStructEnd(ctx context.Context) error WriteFieldBegin(ctx context.Context, name string, typeId TType, id int16) error WriteFieldEnd(ctx context.Context) error WriteFieldStop(ctx context.Context) error WriteMapBegin(ctx context.Context, keyType TType, valueType TType, size int) error WriteMapEnd(ctx context.Context) error WriteListBegin(ctx context.Context, elemType TType, size int) error WriteListEnd(ctx context.Context) error WriteSetBegin(ctx context.Context, elemType TType, size int) error WriteSetEnd(ctx context.Context) error WriteBool(ctx context.Context, value bool) error WriteByte(ctx context.Context, value int8) error WriteI16(ctx context.Context, value int16) error WriteI32(ctx context.Context, value int32) error WriteI64(ctx context.Context, value int64) error WriteDouble(ctx context.Context, value float64) error WriteString(ctx context.Context, value string) error WriteBinary(ctx context.Context, value []byte) error ReadMessageBegin(ctx context.Context) (name string, typeId TMessageType, seqid int32, err error) ReadMessageEnd(ctx context.Context) error ReadStructBegin(ctx context.Context) (name string, err error) ReadStructEnd(ctx context.Context) error ReadFieldBegin(ctx context.Context) (name string, typeId TType, id int16, err error) ReadFieldEnd(ctx context.Context) error ReadMapBegin(ctx context.Context) (keyType TType, valueType TType, size int, err error) ReadMapEnd(ctx context.Context) error ReadListBegin(ctx context.Context) (elemType TType, size int, err error) ReadListEnd(ctx context.Context) error ReadSetBegin(ctx context.Context) (elemType TType, size int, err error) ReadSetEnd(ctx context.Context) error ReadBool(ctx context.Context) (value bool, err error) ReadByte(ctx context.Context) (value int8, err error) ReadI16(ctx context.Context) (value int16, err error) ReadI32(ctx context.Context) (value int32, err error) ReadI64(ctx context.Context) (value int64, err error) ReadDouble(ctx context.Context) (value float64, err error) ReadString(ctx context.Context) (value string, err error) ReadBinary(ctx context.Context) (value []byte, err error) Skip(ctx context.Context, fieldType TType) (err error) Flush(ctx context.Context) (err error) Transport() TTransport }
type TProtocolException ¶
type TProtocolException interface { TException TypeId() int }
Thrift Protocol exception
func NewTProtocolException ¶
func NewTProtocolException(err error) TProtocolException
func NewTProtocolExceptionWithType ¶
func NewTProtocolExceptionWithType(errType int, err error) TProtocolException
type TProtocolFactory ¶
type TProtocolFactory interface {
GetProtocol(trans TTransport) TProtocol
}
Factory interface for constructing protocol instances.
func NewTHeaderProtocolFactory
deprecated
func NewTHeaderProtocolFactory() TProtocolFactory
Deprecated: Use NewTHeaderProtocolFactoryConf instead.
func NewTHeaderProtocolFactoryConf ¶
func NewTHeaderProtocolFactoryConf(conf *TConfiguration) TProtocolFactory
NewTHeaderProtocolFactoryConf creates a factory for THeader with given TConfiguration.
func TProtocolFactoryConf ¶
func TProtocolFactoryConf(delegate TProtocolFactory, conf *TConfiguration) TProtocolFactory
TProtocolFactoryConf wraps a TProtocolFactory to propagate TConfiguration on the factory's GetProtocol calls.
type TResponseHelper ¶
type TResponseHelper struct { // THeader related functions *THeaderResponseHelper }
TResponseHelper defines a object with a set of helper functions that can be retrieved from the context object passed into server handler functions.
Use GetResponseHelper to retrieve the injected TResponseHelper implementation from the context object.
The zero value of TResponseHelper is valid with all helper functions being no-op.
func GetResponseHelper ¶
func GetResponseHelper(ctx context.Context) (helper TResponseHelper, ok bool)
GetResponseHelper retrieves the TResponseHelper implementation injected into the context object.
If no helper was found in the context object, a nop helper with ok == false will be returned.
type TRichTransport ¶
type TRichTransport interface { io.ReadWriter io.ByteReader io.ByteWriter ContextFlusher ReadSizeProvider // contains filtered or unexported methods }
This is "enchanced" transport with extra capabilities. You need to use one of these to construct protocol. Notably, TSocket does not implement this interface, and it is always a mistake to use TSocket directly in protocol.
type TSerializer ¶
type TSerializer struct { Transport *TMemoryBuffer Protocol TProtocol }
func NewTSerializer ¶
func NewTSerializer() *TSerializer
func (*TSerializer) WriteString ¶
type TSerializerPool ¶
type TSerializerPool struct {
// contains filtered or unexported fields
}
TSerializerPool is the thread-safe version of TSerializer, it uses resource pool of TSerializer under the hood.
It must be initialized with either NewTSerializerPool or NewTSerializerPoolSizeFactory.
func NewTSerializerPool ¶
func NewTSerializerPool(f func() *TSerializer) *TSerializerPool
NewTSerializerPool creates a new TSerializerPool.
NewTSerializer can be used as the arg here.
func NewTSerializerPoolSizeFactory ¶
func NewTSerializerPoolSizeFactory(size int, factory TProtocolFactory) *TSerializerPool
NewTSerializerPoolSizeFactory creates a new TSerializerPool with the given size and protocol factory.
Note that the size is not the limit. The TMemoryBuffer underneath can grow larger than that. It just dictates the initial size.
func (*TSerializerPool) WriteString ¶
type TServerTransport ¶
type TServerTransport interface { Listen() error Accept() (TTransport, error) Close() error // Optional method implementation. This signals to the server transport // that it should break out of any accept() or listen() that it is currently // blocked on. This method, if implemented, MUST be thread safe, as it may // be called from a different thread context than the other TServerTransport // methods. Interrupt() error }
Server transport. Object which provides client transports.
type TSimpleJSONProtocol ¶
type TSimpleJSONProtocol struct {
// contains filtered or unexported fields
}
Simple JSON protocol implementation for thrift.
This protocol produces/consumes a simple output format suitable for parsing by scripting languages. It should not be confused with the full-featured TJSONProtocol.
func NewTSimpleJSONProtocol ¶
func NewTSimpleJSONProtocol(t TTransport) *TSimpleJSONProtocol
Constructor
func (*TSimpleJSONProtocol) Flush ¶
func (p *TSimpleJSONProtocol) Flush(ctx context.Context) (err error)
func (*TSimpleJSONProtocol) OutputBool ¶
func (p *TSimpleJSONProtocol) OutputBool(value bool) error
func (*TSimpleJSONProtocol) OutputElemListBegin ¶
func (p *TSimpleJSONProtocol) OutputElemListBegin(elemType TType, size int) error
func (*TSimpleJSONProtocol) OutputF64 ¶
func (p *TSimpleJSONProtocol) OutputF64(value float64) error
func (*TSimpleJSONProtocol) OutputI64 ¶
func (p *TSimpleJSONProtocol) OutputI64(value int64) error
func (*TSimpleJSONProtocol) OutputListBegin ¶
func (p *TSimpleJSONProtocol) OutputListBegin() error
func (*TSimpleJSONProtocol) OutputListEnd ¶
func (p *TSimpleJSONProtocol) OutputListEnd() error
func (*TSimpleJSONProtocol) OutputNull ¶
func (p *TSimpleJSONProtocol) OutputNull() error
func (*TSimpleJSONProtocol) OutputObjectBegin ¶
func (p *TSimpleJSONProtocol) OutputObjectBegin() error
func (*TSimpleJSONProtocol) OutputObjectEnd ¶
func (p *TSimpleJSONProtocol) OutputObjectEnd() error
func (*TSimpleJSONProtocol) OutputPostValue ¶
func (p *TSimpleJSONProtocol) OutputPostValue() error
func (*TSimpleJSONProtocol) OutputPreValue ¶
func (p *TSimpleJSONProtocol) OutputPreValue() error
func (*TSimpleJSONProtocol) OutputString ¶
func (p *TSimpleJSONProtocol) OutputString(s string) error
func (*TSimpleJSONProtocol) OutputStringData ¶
func (p *TSimpleJSONProtocol) OutputStringData(s string) error
func (*TSimpleJSONProtocol) ParseBase64EncodedBody ¶
func (p *TSimpleJSONProtocol) ParseBase64EncodedBody() ([]byte, error)
func (*TSimpleJSONProtocol) ParseElemListBegin ¶
func (p *TSimpleJSONProtocol) ParseElemListBegin() (elemType TType, size int, e error)
func (*TSimpleJSONProtocol) ParseF64 ¶
func (p *TSimpleJSONProtocol) ParseF64() (float64, bool, error)
func (*TSimpleJSONProtocol) ParseI64 ¶
func (p *TSimpleJSONProtocol) ParseI64() (int64, bool, error)
func (*TSimpleJSONProtocol) ParseListBegin ¶
func (p *TSimpleJSONProtocol) ParseListBegin() (isNull bool, err error)
func (*TSimpleJSONProtocol) ParseListEnd ¶
func (p *TSimpleJSONProtocol) ParseListEnd() error
func (*TSimpleJSONProtocol) ParseObjectEnd ¶
func (p *TSimpleJSONProtocol) ParseObjectEnd() error
func (*TSimpleJSONProtocol) ParseObjectStart ¶
func (p *TSimpleJSONProtocol) ParseObjectStart() (bool, error)
func (*TSimpleJSONProtocol) ParsePostValue ¶
func (p *TSimpleJSONProtocol) ParsePostValue() error
func (*TSimpleJSONProtocol) ParsePreValue ¶
func (p *TSimpleJSONProtocol) ParsePreValue() error
func (*TSimpleJSONProtocol) ParseQuotedStringBody ¶
func (p *TSimpleJSONProtocol) ParseQuotedStringBody() (string, error)
func (*TSimpleJSONProtocol) ParseStringBody ¶
func (p *TSimpleJSONProtocol) ParseStringBody() (string, error)
func (*TSimpleJSONProtocol) ReadBinary ¶
func (p *TSimpleJSONProtocol) ReadBinary(ctx context.Context) ([]byte, error)
func (*TSimpleJSONProtocol) ReadBool ¶
func (p *TSimpleJSONProtocol) ReadBool(ctx context.Context) (bool, error)
func (*TSimpleJSONProtocol) ReadByte ¶
func (p *TSimpleJSONProtocol) ReadByte(ctx context.Context) (int8, error)
func (*TSimpleJSONProtocol) ReadDouble ¶
func (p *TSimpleJSONProtocol) ReadDouble(ctx context.Context) (float64, error)
func (*TSimpleJSONProtocol) ReadFieldBegin ¶
func (*TSimpleJSONProtocol) ReadFieldEnd ¶
func (p *TSimpleJSONProtocol) ReadFieldEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) ReadI16 ¶
func (p *TSimpleJSONProtocol) ReadI16(ctx context.Context) (int16, error)
func (*TSimpleJSONProtocol) ReadI32 ¶
func (p *TSimpleJSONProtocol) ReadI32(ctx context.Context) (int32, error)
func (*TSimpleJSONProtocol) ReadI64 ¶
func (p *TSimpleJSONProtocol) ReadI64(ctx context.Context) (int64, error)
func (*TSimpleJSONProtocol) ReadListBegin ¶
func (*TSimpleJSONProtocol) ReadListEnd ¶
func (p *TSimpleJSONProtocol) ReadListEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) ReadMapBegin ¶
func (*TSimpleJSONProtocol) ReadMapEnd ¶
func (p *TSimpleJSONProtocol) ReadMapEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) ReadMessageBegin ¶
func (p *TSimpleJSONProtocol) ReadMessageBegin(ctx context.Context) (name string, typeId TMessageType, seqId int32, err error)
Reading methods.
func (*TSimpleJSONProtocol) ReadMessageEnd ¶
func (p *TSimpleJSONProtocol) ReadMessageEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) ReadSetBegin ¶
func (*TSimpleJSONProtocol) ReadSetEnd ¶
func (p *TSimpleJSONProtocol) ReadSetEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) ReadString ¶
func (p *TSimpleJSONProtocol) ReadString(ctx context.Context) (string, error)
func (*TSimpleJSONProtocol) ReadStructBegin ¶
func (p *TSimpleJSONProtocol) ReadStructBegin(ctx context.Context) (name string, err error)
func (*TSimpleJSONProtocol) ReadStructEnd ¶
func (p *TSimpleJSONProtocol) ReadStructEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) SetTConfiguration ¶
func (p *TSimpleJSONProtocol) SetTConfiguration(conf *TConfiguration)
SetTConfiguration implements TConfigurationSetter for propagation.
func (*TSimpleJSONProtocol) Skip ¶
func (p *TSimpleJSONProtocol) Skip(ctx context.Context, fieldType TType) (err error)
func (*TSimpleJSONProtocol) Transport ¶
func (p *TSimpleJSONProtocol) Transport() TTransport
func (*TSimpleJSONProtocol) WriteBinary ¶
func (p *TSimpleJSONProtocol) WriteBinary(ctx context.Context, v []byte) error
func (*TSimpleJSONProtocol) WriteBool ¶
func (p *TSimpleJSONProtocol) WriteBool(ctx context.Context, b bool) error
func (*TSimpleJSONProtocol) WriteByte ¶
func (p *TSimpleJSONProtocol) WriteByte(ctx context.Context, b int8) error
func (*TSimpleJSONProtocol) WriteDouble ¶
func (p *TSimpleJSONProtocol) WriteDouble(ctx context.Context, v float64) error
func (*TSimpleJSONProtocol) WriteFieldBegin ¶
func (*TSimpleJSONProtocol) WriteFieldEnd ¶
func (p *TSimpleJSONProtocol) WriteFieldEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) WriteFieldStop ¶
func (p *TSimpleJSONProtocol) WriteFieldStop(ctx context.Context) error
func (*TSimpleJSONProtocol) WriteI16 ¶
func (p *TSimpleJSONProtocol) WriteI16(ctx context.Context, v int16) error
func (*TSimpleJSONProtocol) WriteI32 ¶
func (p *TSimpleJSONProtocol) WriteI32(ctx context.Context, v int32) error
func (*TSimpleJSONProtocol) WriteI64 ¶
func (p *TSimpleJSONProtocol) WriteI64(ctx context.Context, v int64) error
func (*TSimpleJSONProtocol) WriteListBegin ¶
func (*TSimpleJSONProtocol) WriteListEnd ¶
func (p *TSimpleJSONProtocol) WriteListEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) WriteMapBegin ¶
func (*TSimpleJSONProtocol) WriteMapEnd ¶
func (p *TSimpleJSONProtocol) WriteMapEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) WriteMessageBegin ¶
func (p *TSimpleJSONProtocol) WriteMessageBegin(ctx context.Context, name string, typeId TMessageType, seqId int32) error
func (*TSimpleJSONProtocol) WriteMessageEnd ¶
func (p *TSimpleJSONProtocol) WriteMessageEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) WriteSetBegin ¶
func (*TSimpleJSONProtocol) WriteSetEnd ¶
func (p *TSimpleJSONProtocol) WriteSetEnd(ctx context.Context) error
func (*TSimpleJSONProtocol) WriteString ¶
func (p *TSimpleJSONProtocol) WriteString(ctx context.Context, v string) error
func (*TSimpleJSONProtocol) WriteStructBegin ¶
func (p *TSimpleJSONProtocol) WriteStructBegin(ctx context.Context, name string) error
func (*TSimpleJSONProtocol) WriteStructEnd ¶
func (p *TSimpleJSONProtocol) WriteStructEnd(ctx context.Context) error
type TSimpleJSONProtocolFactory ¶
type TSimpleJSONProtocolFactory struct{}
Factory
func NewTSimpleJSONProtocolFactory ¶
func NewTSimpleJSONProtocolFactory() *TSimpleJSONProtocolFactory
func (*TSimpleJSONProtocolFactory) GetProtocol ¶
func (p *TSimpleJSONProtocolFactory) GetProtocol(trans TTransport) TProtocol
type TSimpleServer ¶
type TSimpleServer struct {
// contains filtered or unexported fields
}
* This is not a typical TSimpleServer as it is not blocked after accept a socket. * It is more like a TThreadedServer that can handle different connections in different goroutines. * This will work if golang user implements a conn-pool like thing in client side.
func NewTSimpleServer2 ¶
func NewTSimpleServer2(processor TProcessor, serverTransport TServerTransport) *TSimpleServer
func NewTSimpleServer4 ¶
func NewTSimpleServer4(processor TProcessor, serverTransport TServerTransport, transportFactory TTransportFactory, protocolFactory TProtocolFactory) *TSimpleServer
func NewTSimpleServer6 ¶
func NewTSimpleServer6(processor TProcessor, serverTransport TServerTransport, inputTransportFactory TTransportFactory, outputTransportFactory TTransportFactory, inputProtocolFactory TProtocolFactory, outputProtocolFactory TProtocolFactory) *TSimpleServer
func NewTSimpleServerFactory2 ¶
func NewTSimpleServerFactory2(processorFactory TProcessorFactory, serverTransport TServerTransport) *TSimpleServer
func NewTSimpleServerFactory4 ¶
func NewTSimpleServerFactory4(processorFactory TProcessorFactory, serverTransport TServerTransport, transportFactory TTransportFactory, protocolFactory TProtocolFactory) *TSimpleServer
func NewTSimpleServerFactory6 ¶
func NewTSimpleServerFactory6(processorFactory TProcessorFactory, serverTransport TServerTransport, inputTransportFactory TTransportFactory, outputTransportFactory TTransportFactory, inputProtocolFactory TProtocolFactory, outputProtocolFactory TProtocolFactory) *TSimpleServer
func (*TSimpleServer) AcceptLoop ¶
func (p *TSimpleServer) AcceptLoop() error
func (*TSimpleServer) InputProtocolFactory ¶
func (p *TSimpleServer) InputProtocolFactory() TProtocolFactory
func (*TSimpleServer) InputTransportFactory ¶
func (p *TSimpleServer) InputTransportFactory() TTransportFactory
func (*TSimpleServer) Listen ¶
func (p *TSimpleServer) Listen() error
func (*TSimpleServer) OutputProtocolFactory ¶
func (p *TSimpleServer) OutputProtocolFactory() TProtocolFactory
func (*TSimpleServer) OutputTransportFactory ¶
func (p *TSimpleServer) OutputTransportFactory() TTransportFactory
func (*TSimpleServer) ProcessorFactory ¶
func (p *TSimpleServer) ProcessorFactory() TProcessorFactory
func (*TSimpleServer) Serve ¶
func (p *TSimpleServer) Serve() error
func (*TSimpleServer) ServerTransport ¶
func (p *TSimpleServer) ServerTransport() TServerTransport
func (*TSimpleServer) SetForwardHeaders ¶
func (p *TSimpleServer) SetForwardHeaders(headers []string)
SetForwardHeaders sets the list of header keys that will be auto forwarded while using THeaderProtocol.
"forward" means that when the server is also a client to other upstream thrift servers, the context object user gets in the processor functions will have both read and write headers set, with write headers being forwarded. Users can always override the write headers by calling SetWriteHeaderList before calling thrift client functions.
func (*TSimpleServer) SetLogger ¶
func (p *TSimpleServer) SetLogger(logger Logger)
SetLogger sets the logger used by this TSimpleServer.
If no logger was set before Serve is called, a default logger using standard log library will be used.
func (*TSimpleServer) Stop ¶
func (p *TSimpleServer) Stop() error
type TStandardClient ¶
type TStandardClient struct {
// contains filtered or unexported fields
}
func NewTStandardClient ¶
func NewTStandardClient(inputProtocol, outputProtocol TProtocol) *TStandardClient
TStandardClient implements TClient, and uses the standard message format for Thrift. It is not safe for concurrent use.
func (*TStandardClient) Call ¶
func (p *TStandardClient) Call(ctx context.Context, method string, args, result TStruct) (ResponseMeta, error)
type TTransport ¶
type TTransport interface { io.ReadWriteCloser ContextFlusher ReadSizeProvider // Opens the transport for communication Open() error // Returns true if the transport is open IsOpen() bool }
Encapsulates the I/O layer
type TTransportException ¶
type TTransportException interface { TException TypeId() int Err() error }
Thrift Transport exception
func NewTTransportException ¶
func NewTTransportException(t int, e string) TTransportException
func NewTTransportExceptionFromError ¶
func NewTTransportExceptionFromError(e error) TTransportException
type TTransportFactory ¶
type TTransportFactory interface {
GetTransport(trans TTransport) (TTransport, error)
}
Factory class used to create wrapped instance of Transports. This is used primarily in servers, which get Transports from a ServerTransport and then may want to mutate them (i.e. create a BufferedTransport from the underlying base transport)
func NewTHeaderTransportFactory
deprecated
func NewTHeaderTransportFactory(factory TTransportFactory) TTransportFactory
Deprecated: Use NewTHeaderTransportFactoryConf instead.
func NewTHeaderTransportFactoryConf ¶
func NewTHeaderTransportFactoryConf(factory TTransportFactory, conf *TConfiguration) TTransportFactory
NewTHeaderTransportFactoryConf creates a new *THeaderTransportFactory with the given *TConfiguration.
func NewTTransportFactory ¶
func NewTTransportFactory() TTransportFactory
func TTransportFactoryConf ¶
func TTransportFactoryConf(delegate TTransportFactory, conf *TConfiguration) TTransportFactory
TTransportFactoryConf wraps a TTransportFactory to propagate TConfiguration on the factory's GetTransport calls.
type TransformReader ¶
TransformReader is an io.ReadCloser that handles transforms reading.
func NewTransformReaderWithCapacity ¶
func NewTransformReaderWithCapacity(baseReader io.Reader, capacity int) *TransformReader
NewTransformReaderWithCapacity initializes a TransformReader with expected closers capacity.
If you don't know the closers capacity beforehand, just use
&TransformReader{Reader: baseReader}
instead would be sufficient.
func (*TransformReader) AddTransform ¶
func (tr *TransformReader) AddTransform(id THeaderTransformID) error
AddTransform adds a transform.
func (*TransformReader) Close ¶
func (tr *TransformReader) Close() error
Close calls the underlying closers in appropriate order, stops at and returns the first error encountered.
type TransformWriter ¶
TransformWriter is an io.WriteCloser that handles transforms writing.
func (*TransformWriter) AddTransform ¶
func (tw *TransformWriter) AddTransform(id THeaderTransformID) error
AddTransform adds a transform.
func (*TransformWriter) Close ¶
func (tw *TransformWriter) Close() error
Close calls the underlying closers in appropriate order, stops at and returns the first error encountered.
Source Files ¶
- application_exception.go
- binary_protocol.go
- client.go
- compact_protocol.go
- configuration.go
- context.go
- exception.go
- header_context.go
- header_protocol.go
- header_transport.go
- logger.go
- memory_buffer.go
- messagetype.go
- numeric.go
- processor_factory.go
- protocol.go
- protocol_exception.go
- protocol_factory.go
- response_helper.go
- rich_transport.go
- serializer.go
- server_transport.go
- simple_json_protocol.go
- simple_server.go
- transport.go
- transport_exception.go
- transport_factory.go
- type.go