54 lines
780 B
Go
54 lines
780 B
Go
|
package srpc
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
"olznet.de/ssob"
|
||
|
)
|
||
|
|
||
|
type IEncoder interface {
|
||
|
Encode(e interface{}) error
|
||
|
}
|
||
|
|
||
|
type IDecoder interface {
|
||
|
Decode(e interface{}) error
|
||
|
}
|
||
|
|
||
|
type IEncoderHandler interface {
|
||
|
NewEncoder(w io.Writer) IEncoder
|
||
|
}
|
||
|
|
||
|
type IDecoderHandler interface {
|
||
|
NewDecoder(r io.Reader) IDecoder
|
||
|
}
|
||
|
|
||
|
type IEncoderDecoder interface {
|
||
|
IEncoderHandler
|
||
|
IDecoderHandler
|
||
|
}
|
||
|
|
||
|
type Encoder struct {
|
||
|
}
|
||
|
|
||
|
func (e *Encoder) NewEncoder(w io.Writer) IEncoder {
|
||
|
return ssob.NewEncoder(w)
|
||
|
}
|
||
|
|
||
|
type Decoder struct {
|
||
|
}
|
||
|
|
||
|
func (d *Decoder) NewDecoder(r io.Reader) IDecoder {
|
||
|
return ssob.NewDecoder(r)
|
||
|
}
|
||
|
|
||
|
type EncoderDecoder struct {
|
||
|
IEncoderHandler
|
||
|
IDecoderHandler
|
||
|
}
|
||
|
|
||
|
func NewEncoderDecoder() IEncoderDecoder {
|
||
|
enc := new(Encoder)
|
||
|
dec := new(Decoder)
|
||
|
|
||
|
return &EncoderDecoder{enc, dec}
|
||
|
}
|