Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
flatbuffers
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
flatbuffers
Commits
69dc71b5
Commit
69dc71b5
authored
Dec 28, 2016
by
CarsarSky
Committed by
Wouter van Oortmerssen
Dec 28, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix C++ gRPC test with streaming method (#4123)
parent
1a896822
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
35 additions
and
30 deletions
+35
-30
cpp_generator.cc
grpc/src/compiler/cpp_generator.cc
+3
-3
grpctest.cpp
grpc/tests/grpctest.cpp
+1
-1
monster_test.fbs
tests/monster_test.fbs
+1
-1
monster_test.grpc.fb.cc
tests/monster_test.grpc.fb.cc
+9
-11
monster_test.grpc.fb.h
tests/monster_test.grpc.fb.h
+21
-14
No files found.
grpc/src/compiler/cpp_generator.cc
View file @
69dc71b5
...
...
@@ -107,6 +107,7 @@ grpc::string GetHeaderPrologue(grpc_generator::File *file, const Parameters & /*
printer
->
Print
(
vars
,
"#define GRPC_$filename_identifier$__INCLUDED
\n
"
);
printer
->
Print
(
vars
,
"
\n
"
);
printer
->
Print
(
vars
,
"#include
\"
$filename_base$$message_header_ext$
\"\n
"
);
printer
->
Print
(
vars
,
file
->
additional_headers
().
c_str
());
printer
->
Print
(
vars
,
"
\n
"
);
}
return
output
;
...
...
@@ -123,7 +124,6 @@ grpc::string GetHeaderIncludes(grpc_generator::File *file,
static
const
char
*
headers_strs
[]
=
{
"grpc++/impl/codegen/async_stream.h"
,
"grpc++/impl/codegen/async_unary_call.h"
,
"grpc++/impl/codegen/proto_utils.h"
,
"grpc++/impl/codegen/rpc_method.h"
,
"grpc++/impl/codegen/service_type.h"
,
"grpc++/impl/codegen/status.h"
,
...
...
@@ -840,8 +840,7 @@ grpc::string GetSourcePrologue(grpc_generator::File *file, const Parameters & /*
printer
->
Print
(
vars
,
"// source: $filename$
\n\n
"
);
printer
->
Print
(
vars
,
"#include
\"
$filename_base$$message_header_ext$
\"\n
"
);
printer
->
Print
(
vars
,
"#include
\"
$filename_base$$service_header_ext$
\"\n
"
);
printer
->
Print
(
vars
,
file
->
additional_headers
().
c_str
());
printer
->
Print
(
vars
,
"
\n
"
);
printer
->
Print
(
"
\n
"
);
}
return
output
;
}
...
...
@@ -868,6 +867,7 @@ grpc::string GetSourceIncludes(grpc_generator::File *file,
PrintIncludes
(
printer
.
get
(),
headers
,
params
);
if
(
!
file
->
package
().
empty
())
{
printer
->
Print
(
"
\n
"
);
std
::
vector
<
grpc
::
string
>
parts
=
file
->
package_parts
();
for
(
auto
part
=
parts
.
begin
();
part
!=
parts
.
end
();
part
++
)
{
...
...
grpc/tests/grpctest.cpp
View file @
69dc71b5
...
...
@@ -44,7 +44,7 @@ class ServiceImpl final : public MyGame::Example::MonsterStorage::Service {
}
virtual
::
grpc
::
Status
Retrieve
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>
*
request
,
flatbuffers
::
BufferRef
<
Monster
>
*
response
)
::
grpc
::
ServerWriter
<
flatbuffers
::
BufferRef
<
Monster
>>*
writer
)
override
{
assert
(
false
);
// We're not actually using this RPC.
return
grpc
::
Status
::
CANCELLED
;
...
...
tests/monster_test.fbs
View file @
69dc71b5
...
...
@@ -71,7 +71,7 @@ table Monster {
rpc_service MonsterStorage {
Store(Monster):Stat (streaming: "none");
Retrieve(Stat):Monster (idempotent);
Retrieve(Stat):Monster (
streaming: "server",
idempotent);
}
root_type Monster;
...
...
tests/monster_test.grpc.fb.cc
View file @
69dc71b5
...
...
@@ -4,8 +4,6 @@
#include "monster_test_generated.h"
#include "monster_test.grpc.fb.h"
#include "flatbuffers/grpc.h"
#include <grpc++/impl/codegen/async_stream.h>
#include <grpc++/impl/codegen/async_unary_call.h>
#include <grpc++/impl/codegen/channel_interface.h>
...
...
@@ -29,7 +27,7 @@ std::unique_ptr< MonsterStorage::Stub> MonsterStorage::NewStub(const std::shared
MonsterStorage
::
Stub
::
Stub
(
const
std
::
shared_ptr
<
::
grpc
::
ChannelInterface
>&
channel
)
:
channel_
(
channel
)
,
rpcmethod_Store_
(
MonsterStorage_method_names
[
0
],
::
grpc
::
RpcMethod
::
NORMAL_RPC
,
channel
)
,
rpcmethod_Retrieve_
(
MonsterStorage_method_names
[
1
],
::
grpc
::
RpcMethod
::
NORMAL_RPC
,
channel
)
,
rpcmethod_Retrieve_
(
MonsterStorage_method_names
[
1
],
::
grpc
::
RpcMethod
::
SERVER_STREAMING
,
channel
)
{}
::
grpc
::
Status
MonsterStorage
::
Stub
::
Store
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Monster
>&
request
,
flatbuffers
::
BufferRef
<
Stat
>*
response
)
{
...
...
@@ -40,12 +38,12 @@ MonsterStorage::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& cha
return
new
::
grpc
::
ClientAsyncResponseReader
<
flatbuffers
::
BufferRef
<
Stat
>>
(
channel_
.
get
(),
cq
,
rpcmethod_Store_
,
context
,
request
);
}
::
grpc
::
Status
MonsterStorage
::
Stub
::
Retrieve
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
flatbuffers
::
BufferRef
<
Monster
>*
response
)
{
return
::
grpc
::
BlockingUnaryCall
(
channel_
.
get
(),
rpcmethod_Retrieve_
,
context
,
request
,
response
);
::
grpc
::
ClientReader
<
flatbuffers
::
BufferRef
<
Monster
>>*
MonsterStorage
::
Stub
::
RetrieveRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
)
{
return
new
::
grpc
::
ClientReader
<
flatbuffers
::
BufferRef
<
Monster
>>
(
channel_
.
get
(),
rpcmethod_Retrieve_
,
context
,
request
);
}
::
grpc
::
ClientAsyncRe
sponseReader
<
flatbuffers
::
BufferRef
<
Monster
>>*
MonsterStorage
::
Stub
::
AsyncRetrieveRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
)
{
return
new
::
grpc
::
ClientAsyncRe
sponseReader
<
flatbuffers
::
BufferRef
<
Monster
>>
(
channel_
.
get
(),
cq
,
rpcmethod_Retrieve_
,
context
,
request
);
::
grpc
::
ClientAsyncRe
ader
<
flatbuffers
::
BufferRef
<
Monster
>>*
MonsterStorage
::
Stub
::
AsyncRetrieveRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
,
void
*
tag
)
{
return
new
::
grpc
::
ClientAsyncRe
ader
<
flatbuffers
::
BufferRef
<
Monster
>>
(
channel_
.
get
(),
cq
,
rpcmethod_Retrieve_
,
context
,
request
,
tag
);
}
MonsterStorage
::
Service
::
Service
()
{
...
...
@@ -57,8 +55,8 @@ MonsterStorage::Service::Service() {
std
::
mem_fn
(
&
MonsterStorage
::
Service
::
Store
),
this
)));
AddMethod
(
new
::
grpc
::
RpcServiceMethod
(
MonsterStorage_method_names
[
1
],
::
grpc
::
RpcMethod
::
NORMAL_RPC
,
new
::
grpc
::
RpcMethod
Handler
<
MonsterStorage
::
Service
,
flatbuffers
::
BufferRef
<
Stat
>
,
flatbuffers
::
BufferRef
<
Monster
>>
(
::
grpc
::
RpcMethod
::
SERVER_STREAMING
,
new
::
grpc
::
ServerStreaming
Handler
<
MonsterStorage
::
Service
,
flatbuffers
::
BufferRef
<
Stat
>
,
flatbuffers
::
BufferRef
<
Monster
>>
(
std
::
mem_fn
(
&
MonsterStorage
::
Service
::
Retrieve
),
this
)));
}
...
...
@@ -72,10 +70,10 @@ MonsterStorage::Service::~Service() {
return
::
grpc
::
Status
(
::
grpc
::
StatusCode
::
UNIMPLEMENTED
,
""
);
}
::
grpc
::
Status
MonsterStorage
::
Service
::
Retrieve
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>*
request
,
flatbuffers
::
BufferRef
<
Monster
>*
response
)
{
::
grpc
::
Status
MonsterStorage
::
Service
::
Retrieve
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>*
request
,
::
grpc
::
ServerWriter
<
flatbuffers
::
BufferRef
<
Monster
>>*
writer
)
{
(
void
)
context
;
(
void
)
request
;
(
void
)
response
;
(
void
)
writer
;
return
::
grpc
::
Status
(
::
grpc
::
StatusCode
::
UNIMPLEMENTED
,
""
);
}
...
...
tests/monster_test.grpc.fb.h
View file @
69dc71b5
...
...
@@ -5,10 +5,11 @@
#define GRPC_monster_5ftest__INCLUDED
#include "monster_test_generated.h"
#include "flatbuffers/grpc.h"
#include <grpc++/impl/codegen/async_stream.h>
#include <grpc++/impl/codegen/async_unary_call.h>
#include <grpc++/impl/codegen/proto_utils.h>
#include <grpc++/impl/codegen/rpc_method.h>
#include <grpc++/impl/codegen/service_type.h>
#include <grpc++/impl/codegen/status.h>
...
...
@@ -35,13 +36,16 @@ class MonsterStorage GRPC_FINAL {
std
::
unique_ptr
<
::
grpc
::
ClientAsyncResponseReaderInterface
<
flatbuffers
::
BufferRef
<
Stat
>>>
AsyncStore
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Monster
>&
request
,
::
grpc
::
CompletionQueue
*
cq
)
{
return
std
::
unique_ptr
<
::
grpc
::
ClientAsyncResponseReaderInterface
<
flatbuffers
::
BufferRef
<
Stat
>>>
(
AsyncStoreRaw
(
context
,
request
,
cq
));
}
virtual
::
grpc
::
Status
Retrieve
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
flatbuffers
::
BufferRef
<
Monster
>*
response
)
=
0
;
std
::
unique_ptr
<
::
grpc
::
ClientAsyncResponseReaderInterface
<
flatbuffers
::
BufferRef
<
Monster
>>>
AsyncRetrieve
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
)
{
return
std
::
unique_ptr
<
::
grpc
::
ClientAsyncResponseReaderInterface
<
flatbuffers
::
BufferRef
<
Monster
>>>
(
AsyncRetrieveRaw
(
context
,
request
,
cq
));
std
::
unique_ptr
<
::
grpc
::
ClientReaderInterface
<
flatbuffers
::
BufferRef
<
Monster
>>>
Retrieve
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
)
{
return
std
::
unique_ptr
<
::
grpc
::
ClientReaderInterface
<
flatbuffers
::
BufferRef
<
Monster
>>>
(
RetrieveRaw
(
context
,
request
));
}
std
::
unique_ptr
<
::
grpc
::
ClientAsyncReaderInterface
<
flatbuffers
::
BufferRef
<
Monster
>>>
AsyncRetrieve
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
,
void
*
tag
)
{
return
std
::
unique_ptr
<
::
grpc
::
ClientAsyncReaderInterface
<
flatbuffers
::
BufferRef
<
Monster
>>>
(
AsyncRetrieveRaw
(
context
,
request
,
cq
,
tag
));
}
private
:
virtual
::
grpc
::
ClientAsyncResponseReaderInterface
<
flatbuffers
::
BufferRef
<
Stat
>>*
AsyncStoreRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Monster
>&
request
,
::
grpc
::
CompletionQueue
*
cq
)
=
0
;
virtual
::
grpc
::
ClientAsyncResponseReaderInterface
<
flatbuffers
::
BufferRef
<
Monster
>>*
AsyncRetrieveRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
)
=
0
;
virtual
::
grpc
::
ClientReaderInterface
<
flatbuffers
::
BufferRef
<
Monster
>>*
RetrieveRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
)
=
0
;
virtual
::
grpc
::
ClientAsyncReaderInterface
<
flatbuffers
::
BufferRef
<
Monster
>>*
AsyncRetrieveRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
,
void
*
tag
)
=
0
;
};
class
Stub
GRPC_FINAL
:
public
StubInterface
{
public
:
...
...
@@ -50,15 +54,18 @@ class MonsterStorage GRPC_FINAL {
std
::
unique_ptr
<
::
grpc
::
ClientAsyncResponseReader
<
flatbuffers
::
BufferRef
<
Stat
>>>
AsyncStore
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Monster
>&
request
,
::
grpc
::
CompletionQueue
*
cq
)
{
return
std
::
unique_ptr
<
::
grpc
::
ClientAsyncResponseReader
<
flatbuffers
::
BufferRef
<
Stat
>>>
(
AsyncStoreRaw
(
context
,
request
,
cq
));
}
::
grpc
::
Status
Retrieve
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
flatbuffers
::
BufferRef
<
Monster
>*
response
)
GRPC_OVERRIDE
;
std
::
unique_ptr
<
::
grpc
::
ClientAsyncResponseReader
<
flatbuffers
::
BufferRef
<
Monster
>>>
AsyncRetrieve
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
)
{
return
std
::
unique_ptr
<
::
grpc
::
ClientAsyncResponseReader
<
flatbuffers
::
BufferRef
<
Monster
>>>
(
AsyncRetrieveRaw
(
context
,
request
,
cq
));
std
::
unique_ptr
<
::
grpc
::
ClientReader
<
flatbuffers
::
BufferRef
<
Monster
>>>
Retrieve
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
)
{
return
std
::
unique_ptr
<
::
grpc
::
ClientReader
<
flatbuffers
::
BufferRef
<
Monster
>>>
(
RetrieveRaw
(
context
,
request
));
}
std
::
unique_ptr
<
::
grpc
::
ClientAsyncReader
<
flatbuffers
::
BufferRef
<
Monster
>>>
AsyncRetrieve
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
,
void
*
tag
)
{
return
std
::
unique_ptr
<
::
grpc
::
ClientAsyncReader
<
flatbuffers
::
BufferRef
<
Monster
>>>
(
AsyncRetrieveRaw
(
context
,
request
,
cq
,
tag
));
}
private
:
std
::
shared_ptr
<
::
grpc
::
ChannelInterface
>
channel_
;
::
grpc
::
ClientAsyncResponseReader
<
flatbuffers
::
BufferRef
<
Stat
>>*
AsyncStoreRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Monster
>&
request
,
::
grpc
::
CompletionQueue
*
cq
)
GRPC_OVERRIDE
;
::
grpc
::
ClientAsyncResponseReader
<
flatbuffers
::
BufferRef
<
Monster
>>*
AsyncRetrieveRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
)
GRPC_OVERRIDE
;
::
grpc
::
ClientReader
<
flatbuffers
::
BufferRef
<
Monster
>>*
RetrieveRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
)
GRPC_OVERRIDE
;
::
grpc
::
ClientAsyncReader
<
flatbuffers
::
BufferRef
<
Monster
>>*
AsyncRetrieveRaw
(
::
grpc
::
ClientContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>&
request
,
::
grpc
::
CompletionQueue
*
cq
,
void
*
tag
)
GRPC_OVERRIDE
;
const
::
grpc
::
RpcMethod
rpcmethod_Store_
;
const
::
grpc
::
RpcMethod
rpcmethod_Retrieve_
;
};
...
...
@@ -69,7 +76,7 @@ class MonsterStorage GRPC_FINAL {
Service
();
virtual
~
Service
();
virtual
::
grpc
::
Status
Store
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Monster
>*
request
,
flatbuffers
::
BufferRef
<
Stat
>*
response
);
virtual
::
grpc
::
Status
Retrieve
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>*
request
,
flatbuffers
::
BufferRef
<
Monster
>*
response
);
virtual
::
grpc
::
Status
Retrieve
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>*
request
,
::
grpc
::
ServerWriter
<
flatbuffers
::
BufferRef
<
Monster
>>*
writer
);
};
template
<
class
BaseClass
>
class
WithAsyncMethod_Store
:
public
BaseClass
{
...
...
@@ -103,12 +110,12 @@ class MonsterStorage GRPC_FINAL {
BaseClassMustBeDerivedFromService
(
this
);
}
// disable synchronous version of this method
::
grpc
::
Status
Retrieve
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>*
request
,
flatbuffers
::
BufferRef
<
Monster
>*
response
)
GRPC_FINAL
GRPC_OVERRIDE
{
::
grpc
::
Status
Retrieve
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>*
request
,
::
grpc
::
ServerWriter
<
flatbuffers
::
BufferRef
<
Monster
>>*
writer
)
GRPC_FINAL
GRPC_OVERRIDE
{
abort
();
return
::
grpc
::
Status
(
::
grpc
::
StatusCode
::
UNIMPLEMENTED
,
""
);
}
void
RequestRetrieve
(
::
grpc
::
ServerContext
*
context
,
flatbuffers
::
BufferRef
<
Stat
>*
request
,
::
grpc
::
ServerAsync
ResponseWriter
<
flatbuffers
::
BufferRef
<
Monster
>>*
response
,
::
grpc
::
CompletionQueue
*
new_call_cq
,
::
grpc
::
ServerCompletionQueue
*
notification_cq
,
void
*
tag
)
{
::
grpc
::
Service
::
RequestAsync
Unary
(
1
,
context
,
request
,
response
,
new_call_cq
,
notification_cq
,
tag
);
void
RequestRetrieve
(
::
grpc
::
ServerContext
*
context
,
flatbuffers
::
BufferRef
<
Stat
>*
request
,
::
grpc
::
ServerAsync
Writer
<
flatbuffers
::
BufferRef
<
Monster
>>*
writer
,
::
grpc
::
CompletionQueue
*
new_call_cq
,
::
grpc
::
ServerCompletionQueue
*
notification_cq
,
void
*
tag
)
{
::
grpc
::
Service
::
RequestAsync
ServerStreaming
(
1
,
context
,
request
,
writer
,
new_call_cq
,
notification_cq
,
tag
);
}
};
typedef
WithAsyncMethod_Store
<
WithAsyncMethod_Retrieve
<
Service
>
>
AsyncService
;
...
...
@@ -141,7 +148,7 @@ class MonsterStorage GRPC_FINAL {
BaseClassMustBeDerivedFromService
(
this
);
}
// disable synchronous version of this method
::
grpc
::
Status
Retrieve
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>*
request
,
flatbuffers
::
BufferRef
<
Monster
>*
response
)
GRPC_FINAL
GRPC_OVERRIDE
{
::
grpc
::
Status
Retrieve
(
::
grpc
::
ServerContext
*
context
,
const
flatbuffers
::
BufferRef
<
Stat
>*
request
,
::
grpc
::
ServerWriter
<
flatbuffers
::
BufferRef
<
Monster
>>*
writer
)
GRPC_FINAL
GRPC_OVERRIDE
{
abort
();
return
::
grpc
::
Status
(
::
grpc
::
StatusCode
::
UNIMPLEMENTED
,
""
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment