Support for Golang GRPC (Experimental) (#4082)

* support for grpc golang

* refactored grpc go generator

* added grpc-go test and refactored

* refactored idl_gen_grpc.cpp

* fixed grpc generate method name

* refactored flatc and fixed line length issue

* added codec to go lib and fixed formatting issues

* fixed spacing issues
This commit is contained in:
Ronak Jain
2016-12-06 02:50:38 +05:30
committed by Wouter van Oortmerssen
parent bc2ec7119b
commit a31ddd2bb3
10 changed files with 819 additions and 11 deletions

23
go/grpc.go Normal file
View File

@@ -0,0 +1,23 @@
package flatbuffers
// FlatbuffersCodec implements gRPC-go Codec which is used to encode and decode messages.
var Codec string = "flatbuffers"
type FlatbuffersCodec struct{}
func (FlatbuffersCodec) Marshal(v interface{}) ([]byte, error) {
return v.(*Builder).FinishedBytes(), nil
}
func (FlatbuffersCodec) Unmarshal(data []byte, v interface{}) error {
v.(flatbuffersInit).Init(data, GetUOffsetT(data))
return nil
}
func (FlatbuffersCodec) String() string {
return Codec
}
type flatbuffersInit interface {
Init(data []byte, i UOffsetT)
}