feat: implement codec
This commit is contained in:
34
codec/codec.go
Normal file
34
codec/codec.go
Normal 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
|
||||
}
|
Reference in New Issue
Block a user