Files
krpc/codec/codec.go
2022-04-22 20:51:31 +08:00

35 lines
627 B
Go

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
}