Re-applied reverted fix, adding missing codegen files.

Change-Id: I301d29835fb0baffd859950eb0fb3056e4f4d66b
parent cc842400
...@@ -56,7 +56,7 @@ template<> struct EquipmentTraits<Weapon> { ...@@ -56,7 +56,7 @@ template<> struct EquipmentTraits<Weapon> {
struct EquipmentUnion { struct EquipmentUnion {
Equipment type; Equipment type;
flatbuffers::NativeTable *table = nullptr; flatbuffers::NativeTable *table;
EquipmentUnion() : type(Equipment_NONE), table(nullptr) {} EquipmentUnion() : type(Equipment_NONE), table(nullptr) {}
EquipmentUnion(const EquipmentUnion &); EquipmentUnion(const EquipmentUnion &);
EquipmentUnion &operator=(const EquipmentUnion &); EquipmentUnion &operator=(const EquipmentUnion &);
......
...@@ -567,7 +567,7 @@ class CppGenerator : public BaseGenerator { ...@@ -567,7 +567,7 @@ class CppGenerator : public BaseGenerator {
// Generate a union type // Generate a union type
code += "struct " + enum_def.name + "Union {\n"; code += "struct " + enum_def.name + "Union {\n";
code += " " + enum_def.name + " type;\n\n"; code += " " + enum_def.name + " type;\n\n";
code += " flatbuffers::NativeTable *table = nullptr;\n"; code += " flatbuffers::NativeTable *table;\n";
code += " " + enum_def.name + "Union() : type("; code += " " + enum_def.name + "Union() : type(";
code += GetEnumValUse(enum_def, *enum_def.vals.Lookup("NONE")); code += GetEnumValUse(enum_def, *enum_def.vals.Lookup("NONE"));
code += "), table(nullptr) {}\n"; code += "), table(nullptr) {}\n";
......
...@@ -16,7 +16,7 @@ type MonsterStorageClient interface{ ...@@ -16,7 +16,7 @@ type MonsterStorageClient interface{
Store(ctx context.Context, in *flatbuffers.Builder, Store(ctx context.Context, in *flatbuffers.Builder,
opts... grpc.CallOption) (* Stat, error) opts... grpc.CallOption) (* Stat, error)
Retrieve(ctx context.Context, in *flatbuffers.Builder, Retrieve(ctx context.Context, in *flatbuffers.Builder,
opts... grpc.CallOption) (* Monster, error) opts... grpc.CallOption) (MonsterStorage_RetrieveClient, error)
} }
type monsterStorageClient struct { type monsterStorageClient struct {
...@@ -36,17 +36,34 @@ func (c *monsterStorageClient) Store(ctx context.Context, in *flatbuffers.Builde ...@@ -36,17 +36,34 @@ func (c *monsterStorageClient) Store(ctx context.Context, in *flatbuffers.Builde
} }
func (c *monsterStorageClient) Retrieve(ctx context.Context, in *flatbuffers.Builder, func (c *monsterStorageClient) Retrieve(ctx context.Context, in *flatbuffers.Builder,
opts... grpc.CallOption) (* Monster, error) { opts... grpc.CallOption) (MonsterStorage_RetrieveClient, error) {
out := new(Monster) stream, err := grpc.NewClientStream(ctx, &_MonsterStorage_serviceDesc.Streams[0], c.cc, "/Example.MonsterStorage/Retrieve", opts...)
err := grpc.Invoke(ctx, "/Example.MonsterStorage/Retrieve", in, out, c.cc, opts...)
if err != nil { return nil, err } if err != nil { return nil, err }
return out, nil x := &monsterStorageRetrieveClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil { return nil, err }
if err := x.ClientStream.CloseSend(); err != nil { return nil, err }
return x,nil
}
type MonsterStorage_RetrieveClient interface {
Recv() (*Monster, error)
grpc.ClientStream
}
type monsterStorageRetrieveClient struct{
grpc.ClientStream
}
func (x *monsterStorageRetrieveClient) Recv() (*Monster, error) {
m := new(Monster)
if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err }
return m, nil
} }
// Server API for MonsterStorage service // Server API for MonsterStorage service
type MonsterStorageServer interface { type MonsterStorageServer interface {
Store(context.Context, *Monster) (*flatbuffers.Builder, error) Store(context.Context, *Monster) (*flatbuffers.Builder, error)
Retrieve(context.Context, *Stat) (*flatbuffers.Builder, error) Retrieve(*Stat, MonsterStorage_RetrieveServer) error
} }
func RegisterMonsterStorageServer(s *grpc.Server, srv MonsterStorageServer) { func RegisterMonsterStorageServer(s *grpc.Server, srv MonsterStorageServer) {
...@@ -70,20 +87,23 @@ func _MonsterStorage_Store_Handler(srv interface{}, ctx context.Context, ...@@ -70,20 +87,23 @@ func _MonsterStorage_Store_Handler(srv interface{}, ctx context.Context,
} }
func _MonsterStorage_Retrieve_Handler(srv interface{}, ctx context.Context, func _MonsterStorage_Retrieve_Handler(srv interface{}, stream grpc.ServerStream) error {
dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { m := new(Stat)
in := new(Stat) if err := stream.RecvMsg(m); err != nil { return err }
if err := dec(in); err != nil { return nil, err } return srv.(MonsterStorageServer).Retrieve(m, &monsterStorageRetrieveServer{stream})
if interceptor == nil { return srv.(MonsterStorageServer).Retrieve(ctx, in) } }
info := &grpc.UnaryServerInfo{
Server: srv, type MonsterStorage_RetrieveServer interface {
FullMethod: "/Example.MonsterStorage/Retrieve", Send(* flatbuffers.Builder) error
} grpc.ServerStream
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(MonsterStorageServer).Retrieve(ctx, req.(* Stat)) type monsterStorageRetrieveServer struct {
} grpc.ServerStream
return interceptor(ctx, in, info, handler) }
func (x *monsterStorageRetrieveServer) Send(m *flatbuffers.Builder) error {
return x.ServerStream.SendMsg(m)
} }
...@@ -95,12 +115,13 @@ var _MonsterStorage_serviceDesc = grpc.ServiceDesc{ ...@@ -95,12 +115,13 @@ var _MonsterStorage_serviceDesc = grpc.ServiceDesc{
MethodName: "Store", MethodName: "Store",
Handler: _MonsterStorage_Store_Handler, Handler: _MonsterStorage_Store_Handler,
}, },
},
Streams: []grpc.StreamDesc{
{ {
MethodName: "Retrieve", StreamName: "Retrieve",
Handler: _MonsterStorage_Retrieve_Handler, Handler: _MonsterStorage_Retrieve_Handler,
ServerStreams: true,
}, },
}, },
Streams: []grpc.StreamDesc{
},
} }
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "monster_test_generated.h" #include "monster_test_generated.h"
#include "monster_test.grpc.fb.h" #include "monster_test.grpc.fb.h"
#include <grpc++/impl/codegen/async_stream.h> #include <grpc++/impl/codegen/async_stream.h>
#include <grpc++/impl/codegen/async_unary_call.h> #include <grpc++/impl/codegen/async_unary_call.h>
#include <grpc++/impl/codegen/channel_interface.h> #include <grpc++/impl/codegen/channel_interface.h>
...@@ -12,6 +13,7 @@ ...@@ -12,6 +13,7 @@
#include <grpc++/impl/codegen/rpc_service_method.h> #include <grpc++/impl/codegen/rpc_service_method.h>
#include <grpc++/impl/codegen/service_type.h> #include <grpc++/impl/codegen/service_type.h>
#include <grpc++/impl/codegen/sync_stream.h> #include <grpc++/impl/codegen/sync_stream.h>
namespace MyGame { namespace MyGame {
namespace Example { namespace Example {
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include "monster_test_generated.h" #include "monster_test_generated.h"
#include "flatbuffers/grpc.h" #include "flatbuffers/grpc.h"
#include <grpc++/impl/codegen/async_stream.h> #include <grpc++/impl/codegen/async_stream.h>
#include <grpc++/impl/codegen/async_unary_call.h> #include <grpc++/impl/codegen/async_unary_call.h>
#include <grpc++/impl/codegen/rpc_method.h> #include <grpc++/impl/codegen/rpc_method.h>
......
...@@ -78,7 +78,7 @@ template<> struct AnyTraits<MyGame::Example2::Monster> { ...@@ -78,7 +78,7 @@ template<> struct AnyTraits<MyGame::Example2::Monster> {
struct AnyUnion { struct AnyUnion {
Any type; Any type;
flatbuffers::NativeTable *table = nullptr; flatbuffers::NativeTable *table;
AnyUnion() : type(Any_NONE), table(nullptr) {} AnyUnion() : type(Any_NONE), table(nullptr) {}
AnyUnion(const AnyUnion &); AnyUnion(const AnyUnion &);
AnyUnion &operator=(const AnyUnion &); AnyUnion &operator=(const AnyUnion &);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment