package codec import "io" type Header struct { ServiceMethod string Seq uint64 Error string } type Codec interface { io.Closer ReadHeader(*Header) error ReadBody(interface{}) error Write(*Header, interface{}) error } type NewCodecFunc func(closer io.ReadWriteCloser) Codec type Type string const ( MagicNumber = 0x12E7165 GobType Type = "application/gob" JsonType Type = "application/json" ) var NewCodecFuncMap map[Type]NewCodecFunc func init() { NewCodecFuncMap = make(map[Type]NewCodecFunc) NewCodecFuncMap[GobType] = NewGobCodec NewCodecFuncMap[JsonType] = NewJsonCodec }