mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-24 16:06:10 +00:00
Re-applied reverted fix, adding missing codegen files.
Change-Id: I301d29835fb0baffd859950eb0fb3056e4f4d66b
This commit is contained in:
@@ -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 {
|
|||||||
// 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{
|
|||||||
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
|
|||||||
}
|
}
|
||||||
|
|
||||||
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,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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{
|
|||||||
MethodName: "Store",
|
MethodName: "Store",
|
||||||
Handler: _MonsterStorage_Store_Handler,
|
Handler: _MonsterStorage_Store_Handler,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
MethodName: "Retrieve",
|
|
||||||
Handler: _MonsterStorage_Retrieve_Handler,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
Streams: []grpc.StreamDesc{
|
Streams: []grpc.StreamDesc{
|
||||||
|
{
|
||||||
|
StreamName: "Retrieve",
|
||||||
|
Handler: _MonsterStorage_Retrieve_Handler,
|
||||||
|
ServerStreams: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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 @@
|
|||||||
#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 @@
|
|||||||
#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> {
|
|||||||
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 &);
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user