diff options
author | Tsingson <tsingson@gmail.com> | 2019-08-20 06:32:04 +0800 |
---|---|---|
committer | Wouter van Oortmerssen <aardappel@gmail.com> | 2019-08-19 15:32:04 -0700 |
commit | 30304493487d70b0eb6b8ebb7630feb32398dc97 (patch) | |
tree | 4df562a6bc00d11e650419aa5dee75103031ef77 | |
parent | a2485d4ecc52776a06eac95ddd69fe4b640a76a8 (diff) | |
download | flatbuffers-30304493487d70b0eb6b8ebb7630feb32398dc97.tar.gz flatbuffers-30304493487d70b0eb6b8ebb7630feb32398dc97.tar.bz2 flatbuffers-30304493487d70b0eb6b8ebb7630feb32398dc97.zip |
[go]add Name() for ForceCodec interface (#5486)
* add Name() for ForceCodec interface
// ForceCodec returns a CallOption that will set the given Codec to be
// used for all request and response messages for a call. The result of calling
// String() will be used as the content-subtype in a case-insensitive manner.
//
* Update grpc.go
-rw-r--r-- | go/grpc.go | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -3,21 +3,36 @@ package flatbuffers // Codec implements gRPC-go Codec which is used to encode and decode messages. var Codec = "flatbuffers" +// FlatbuffersCodec defines the interface gRPC uses to encode and decode messages. Note +// that implementations of this interface must be thread safe; a Codec's +// methods can be called from concurrent goroutines. type FlatbuffersCodec struct{} +// Marshal returns the wire format of v. func (FlatbuffersCodec) Marshal(v interface{}) ([]byte, error) { return v.(*Builder).FinishedBytes(), nil } +// Unmarshal parses the wire format into v. func (FlatbuffersCodec) Unmarshal(data []byte, v interface{}) error { v.(flatbuffersInit).Init(data, GetUOffsetT(data)) return nil } +// String old gRPC Codec interface func func (FlatbuffersCodec) String() string { return Codec } +// Name returns the name of the Codec implementation. The returned string +// will be used as part of content type in transmission. The result must be +// static; the result cannot change between calls. +// +// add Name() for ForceCodec interface +func (FlatbuffersCodec) Name() string { + return Codec +} + type flatbuffersInit interface { Init(data []byte, i UOffsetT) } |