Merge commit '0f6aab9da6fe982218a01f4a5b896e65fcced437' as 'third_party/flatbuffers'
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
module github.com/google/flatbuffers/grpc/examples/go/greeter/server
|
||||
|
||||
go 1.15
|
||||
|
||||
replace github.com/google/flatbuffers/grpc/examples/go/greeter/models v0.0.0 => ../models
|
||||
|
||||
require (
|
||||
github.com/google/flatbuffers v2.0.8+incompatible
|
||||
github.com/google/flatbuffers/grpc/examples/go/greeter/models v0.0.0
|
||||
google.golang.org/grpc v1.56.3
|
||||
)
|
||||
@@ -0,0 +1,77 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
models "github.com/google/flatbuffers/grpc/examples/go/greeter/models"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
var (
|
||||
greetings = [...]string{"Hi", "Hallo", "Ciao"}
|
||||
)
|
||||
|
||||
type greeterServer struct {
|
||||
models.UnimplementedGreeterServer
|
||||
}
|
||||
|
||||
func (s *greeterServer) SayHello(ctx context.Context, request *models.HelloRequest) (*flatbuffers.Builder, error) {
|
||||
v := request.Name()
|
||||
var m string
|
||||
if v == nil {
|
||||
m = "Unknown"
|
||||
} else {
|
||||
m = string(v)
|
||||
}
|
||||
b := flatbuffers.NewBuilder(0)
|
||||
idx := b.CreateString("welcome " + m)
|
||||
models.HelloReplyStart(b)
|
||||
models.HelloReplyAddMessage(b, idx)
|
||||
b.Finish(models.HelloReplyEnd(b))
|
||||
return b, nil
|
||||
}
|
||||
|
||||
func (s *greeterServer) SayManyHellos(request *models.HelloRequest, stream models.Greeter_SayManyHellosServer) error {
|
||||
v := request.Name()
|
||||
var m string
|
||||
if v == nil {
|
||||
m = "Unknown"
|
||||
} else {
|
||||
m = string(v)
|
||||
}
|
||||
b := flatbuffers.NewBuilder(0)
|
||||
|
||||
for _, greeting := range greetings {
|
||||
idx := b.CreateString(greeting + " " + m)
|
||||
models.HelloReplyStart(b)
|
||||
models.HelloReplyAddMessage(b, idx)
|
||||
b.Finish(models.HelloReplyEnd(b))
|
||||
if err := stream.Send(b); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func newServer() *greeterServer {
|
||||
s := &greeterServer{}
|
||||
return s
|
||||
}
|
||||
|
||||
func main() {
|
||||
lis, err := net.Listen("tcp", fmt.Sprintf("localhost:%d", 3000))
|
||||
if err != nil {
|
||||
log.Fatalf("failed to listen: %v", err)
|
||||
}
|
||||
codec := &flatbuffers.FlatbuffersCodec{}
|
||||
grpcServer := grpc.NewServer(grpc.ForceServerCodec(codec))
|
||||
models.RegisterGreeterServer(grpcServer, newServer())
|
||||
if err := grpcServer.Serve(lis); err != nil {
|
||||
fmt.Print(err)
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user