summaryrefslogtreecommitdiff
path: root/go
diff options
context:
space:
mode:
authorTsingson <tsingson@gmail.com>2019-08-20 06:32:04 +0800
committerWouter van Oortmerssen <aardappel@gmail.com>2019-08-19 15:32:04 -0700
commit30304493487d70b0eb6b8ebb7630feb32398dc97 (patch)
tree4df562a6bc00d11e650419aa5dee75103031ef77 /go
parenta2485d4ecc52776a06eac95ddd69fe4b640a76a8 (diff)
downloadflatbuffers-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
Diffstat (limited to 'go')
-rw-r--r--go/grpc.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/go/grpc.go b/go/grpc.go
index e7dabd3c..15f1a510 100644
--- a/go/grpc.go
+++ b/go/grpc.go
@@ -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)
}