package thrift
type TSerializer struct {
- Transport TTransport
+ Transport *TMemoryBuffer
Protocol TProtocol
}
}
func NewTSerializer() *TSerializer {
- var transport TTransport
- transport = NewTMemoryBufferLen(1024)
-
+ transport := NewTMemoryBufferLen(1024)
protocol := NewTBinaryProtocolFactoryDefault().GetProtocol(transport)
return &TSerializer{
}
func (t *TSerializer) WriteString(msg TStruct) (s string, err error) {
- s = ""
- err = nil
+ t.Transport.Reset()
if err = msg.Write(t.Protocol); err != nil {
return
return
}
- var buf []byte
- var place int
- buf = make([]byte, 1024)
- if place, err = t.Transport.Read(buf); err != nil {
- return
- }
-
- s = string(buf[:place])
- return
+ return t.Transport.String(), nil
}
func (t *TSerializer) Write(msg TStruct) (b []byte, err error) {
- err = nil
+ t.Transport.Reset()
if err = msg.Write(t.Protocol); err != nil {
return
return
}
- var buf []byte
- var place int
- buf = make([]byte, 1024)
- if place, err = t.Transport.Read(buf); err != nil {
- return
- }
-
- b = buf[:place]
+ b = append(b, t.Transport.Bytes()...)
return
}