mirror of https://github.com/poanetwork/gecko.git
33 lines
769 B
Go
33 lines
769 B
Go
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package gwriter
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
|
|
"github.com/ava-labs/gecko/vms/rpcchainvm/ghttp/gwriter/gwriterproto"
|
|
)
|
|
|
|
// Server is a http.Handler that is managed over RPC.
|
|
type Server struct{ writer io.Writer }
|
|
|
|
// NewServer returns a http.Handler instance manage remotely
|
|
func NewServer(writer io.Writer) *Server {
|
|
return &Server{writer: writer}
|
|
}
|
|
|
|
// Write ...
|
|
func (s *Server) Write(ctx context.Context, req *gwriterproto.WriteRequest) (*gwriterproto.WriteResponse, error) {
|
|
n, err := s.writer.Write(req.Payload)
|
|
resp := &gwriterproto.WriteResponse{
|
|
Written: int32(n),
|
|
}
|
|
if err != nil {
|
|
resp.Errored = true
|
|
resp.Error = err.Error()
|
|
}
|
|
return resp, nil
|
|
}
|