rpc/codec/codec.go
crusader 267d8ac0e1 ing
2017-10-25 23:52:47 +09:00

28 lines
810 B
Go

package codec
import (
"io"
)
// ----------------------------------------------------------------------------
// Codec
// ----------------------------------------------------------------------------
// Codec creates a CodecRequest to process each request.
type Codec interface {
NewRequest(r io.Reader) (CodecRequest, bool)
}
// CodecRequest decodes a request and encodes a response using a specific
// serialization scheme.
type CodecRequest interface {
// Reads the request and returns the RPC method name.
Method() (string, error)
// Reads the request filling the RPC method args.
ReadRequest(interface{}) error
// Writes the response using the RPC method reply.
WriteResponse(io.Writer, interface{})
// Writes an error produced by the server.
WriteError(w io.Writer, status int, err error)
}