feat: implement codec

This commit is contained in:
2022-04-22 20:50:58 +08:00
parent 9083504cfc
commit cf8fa335a6
9 changed files with 332 additions and 0 deletions

34
codec/codec.go Normal file
View File

@ -0,0 +1,34 @@
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
}