Merge pull request #29 from yang-g/helloworld
Add helloworld example in c++
This commit is contained in:
commit
ddae4f734b
|
|
@ -0,0 +1,47 @@
|
||||||
|
#
|
||||||
|
# Copyright 2015, Google Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are
|
||||||
|
# met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above
|
||||||
|
# copyright notice, this list of conditions and the following disclaimer
|
||||||
|
# in the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# * Neither the name of Google Inc. nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived from
|
||||||
|
# this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
CXX=g++
|
||||||
|
CPPFLAGS=-I/usr/local/include -pthread
|
||||||
|
CXXFLAGS=-std=c++11
|
||||||
|
LDFLAGS=-L/usr/local/lib -lgrpc -lgrpc++ -lprotobuf -lpthread -ldl
|
||||||
|
|
||||||
|
all: greeter_client greeter_server
|
||||||
|
|
||||||
|
greeter_client: helloworld.pb.o greeter_client.o
|
||||||
|
$(CXX) $(CPPFLAGS) $^ $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
greeter_server: helloworld.pb.o greeter_server.o
|
||||||
|
$(CXX) $(CPPFLAGS) $^ $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *.o greeter_client greeter_server
|
||||||
|
|
||||||
|
|
@ -0,0 +1,91 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright 2015, Google Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are
|
||||||
|
* met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above
|
||||||
|
* copyright notice, this list of conditions and the following disclaimer
|
||||||
|
* in the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* * Neither the name of Google Inc. nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include <grpc/grpc.h>
|
||||||
|
#include <grpc++/channel_arguments.h>
|
||||||
|
#include <grpc++/channel_interface.h>
|
||||||
|
#include <grpc++/client_context.h>
|
||||||
|
#include <grpc++/create_channel.h>
|
||||||
|
#include <grpc++/status.h>
|
||||||
|
#include "helloworld.pb.h"
|
||||||
|
|
||||||
|
using grpc::ChannelArguments;
|
||||||
|
using grpc::ChannelInterface;
|
||||||
|
using grpc::ClientContext;
|
||||||
|
using grpc::Status;
|
||||||
|
using helloworld::HelloRequest;
|
||||||
|
using helloworld::HelloReply;
|
||||||
|
using helloworld::Greeter;
|
||||||
|
|
||||||
|
class GreeterClient {
|
||||||
|
public:
|
||||||
|
GreeterClient(std::shared_ptr<ChannelInterface> channel)
|
||||||
|
: stub_(Greeter::NewStub(channel)) {}
|
||||||
|
|
||||||
|
std::string SayHello(const std::string& user) {
|
||||||
|
HelloRequest request;
|
||||||
|
request.set_name(user);
|
||||||
|
HelloReply reply;
|
||||||
|
ClientContext context;
|
||||||
|
|
||||||
|
Status status = stub_->sayHello(&context, request, &reply);
|
||||||
|
if (status.IsOk()) {
|
||||||
|
return reply.message();
|
||||||
|
} else {
|
||||||
|
return "Rpc failed";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Shutdown() { stub_.reset(); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::unique_ptr<Greeter::Stub> stub_;
|
||||||
|
};
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
grpc_init();
|
||||||
|
|
||||||
|
GreeterClient greeter(
|
||||||
|
grpc::CreateChannel("localhost:50051", ChannelArguments()));
|
||||||
|
std::string user("world");
|
||||||
|
std::string reply = greeter.SayHello(user);
|
||||||
|
std::cout << "Greeter received: " << reply << std::endl;
|
||||||
|
|
||||||
|
greeter.Shutdown();
|
||||||
|
|
||||||
|
grpc_shutdown();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,84 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright 2015, Google Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are
|
||||||
|
* met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above
|
||||||
|
* copyright notice, this list of conditions and the following disclaimer
|
||||||
|
* in the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
* * Neither the name of Google Inc. nor the names of its
|
||||||
|
* contributors may be used to endorse or promote products derived from
|
||||||
|
* this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
#include <thread>
|
||||||
|
|
||||||
|
#include <grpc/grpc.h>
|
||||||
|
#include <grpc++/server.h>
|
||||||
|
#include <grpc++/server_builder.h>
|
||||||
|
#include <grpc++/server_context.h>
|
||||||
|
#include <grpc++/status.h>
|
||||||
|
#include "helloworld.pb.h"
|
||||||
|
|
||||||
|
using grpc::Server;
|
||||||
|
using grpc::ServerBuilder;
|
||||||
|
using grpc::ServerContext;
|
||||||
|
using grpc::Status;
|
||||||
|
using helloworld::HelloRequest;
|
||||||
|
using helloworld::HelloReply;
|
||||||
|
using helloworld::Greeter;
|
||||||
|
|
||||||
|
class GreeterServiceImpl final : public Greeter::Service {
|
||||||
|
Status sayHello(ServerContext* context, const HelloRequest* request,
|
||||||
|
HelloReply* reply) override {
|
||||||
|
std::string prefix("Hello ");
|
||||||
|
reply->set_message(prefix + request->name());
|
||||||
|
return Status::OK;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void RunServer() {
|
||||||
|
std::string server_address("0.0.0.0:50051");
|
||||||
|
GreeterServiceImpl service;
|
||||||
|
|
||||||
|
ServerBuilder builder;
|
||||||
|
builder.AddPort(server_address);
|
||||||
|
builder.RegisterService(&service);
|
||||||
|
std::unique_ptr<Server> server(builder.BuildAndStart());
|
||||||
|
std::cout << "Server listening on " << server_address << std::endl;
|
||||||
|
while (true) {
|
||||||
|
std::this_thread::sleep_for(std::chrono::seconds(5));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
grpc_init();
|
||||||
|
|
||||||
|
RunServer();
|
||||||
|
|
||||||
|
grpc_shutdown();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,640 @@
|
||||||
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||||
|
// source: helloworld.proto
|
||||||
|
|
||||||
|
#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
|
||||||
|
#include "helloworld.pb.h"
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
#include <google/protobuf/stubs/common.h>
|
||||||
|
#include <google/protobuf/stubs/once.h>
|
||||||
|
#include <google/protobuf/io/coded_stream.h>
|
||||||
|
#include <google/protobuf/wire_format_lite_inl.h>
|
||||||
|
#include <google/protobuf/descriptor.h>
|
||||||
|
#include <google/protobuf/generated_message_reflection.h>
|
||||||
|
#include <google/protobuf/reflection_ops.h>
|
||||||
|
#include <google/protobuf/wire_format.h>
|
||||||
|
#include <grpc++/async_unary_call.h>
|
||||||
|
#include <grpc++/channel_interface.h>
|
||||||
|
#include <grpc++/impl/client_unary_call.h>
|
||||||
|
#include <grpc++/impl/rpc_method.h>
|
||||||
|
#include <grpc++/impl/rpc_service_method.h>
|
||||||
|
#include <grpc++/impl/service_type.h>
|
||||||
|
#include <grpc++/stream.h>
|
||||||
|
// @@protoc_insertion_point(includes)
|
||||||
|
|
||||||
|
namespace helloworld {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
const ::google::protobuf::Descriptor* HelloRequest_descriptor_ = NULL;
|
||||||
|
const ::google::protobuf::internal::GeneratedMessageReflection*
|
||||||
|
HelloRequest_reflection_ = NULL;
|
||||||
|
const ::google::protobuf::Descriptor* HelloReply_descriptor_ = NULL;
|
||||||
|
const ::google::protobuf::internal::GeneratedMessageReflection*
|
||||||
|
HelloReply_reflection_ = NULL;
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
|
||||||
|
void protobuf_AssignDesc_helloworld_2eproto() {
|
||||||
|
protobuf_AddDesc_helloworld_2eproto();
|
||||||
|
const ::google::protobuf::FileDescriptor* file =
|
||||||
|
::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
|
||||||
|
"helloworld.proto");
|
||||||
|
GOOGLE_CHECK(file != NULL);
|
||||||
|
HelloRequest_descriptor_ = file->message_type(0);
|
||||||
|
static const int HelloRequest_offsets_[1] = {
|
||||||
|
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HelloRequest, name_),
|
||||||
|
};
|
||||||
|
HelloRequest_reflection_ =
|
||||||
|
::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
|
||||||
|
HelloRequest_descriptor_,
|
||||||
|
HelloRequest::default_instance_,
|
||||||
|
HelloRequest_offsets_,
|
||||||
|
-1,
|
||||||
|
-1,
|
||||||
|
-1,
|
||||||
|
sizeof(HelloRequest),
|
||||||
|
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HelloRequest, _internal_metadata_),
|
||||||
|
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HelloRequest, _is_default_instance_));
|
||||||
|
HelloReply_descriptor_ = file->message_type(1);
|
||||||
|
static const int HelloReply_offsets_[1] = {
|
||||||
|
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HelloReply, message_),
|
||||||
|
};
|
||||||
|
HelloReply_reflection_ =
|
||||||
|
::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
|
||||||
|
HelloReply_descriptor_,
|
||||||
|
HelloReply::default_instance_,
|
||||||
|
HelloReply_offsets_,
|
||||||
|
-1,
|
||||||
|
-1,
|
||||||
|
-1,
|
||||||
|
sizeof(HelloReply),
|
||||||
|
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HelloReply, _internal_metadata_),
|
||||||
|
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HelloReply, _is_default_instance_));
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
|
||||||
|
inline void protobuf_AssignDescriptorsOnce() {
|
||||||
|
::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
|
||||||
|
&protobuf_AssignDesc_helloworld_2eproto);
|
||||||
|
}
|
||||||
|
|
||||||
|
void protobuf_RegisterTypes(const ::std::string&) {
|
||||||
|
protobuf_AssignDescriptorsOnce();
|
||||||
|
::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
|
||||||
|
HelloRequest_descriptor_, &HelloRequest::default_instance());
|
||||||
|
::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
|
||||||
|
HelloReply_descriptor_, &HelloReply::default_instance());
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
void protobuf_ShutdownFile_helloworld_2eproto() {
|
||||||
|
delete HelloRequest::default_instance_;
|
||||||
|
delete HelloRequest_reflection_;
|
||||||
|
delete HelloReply::default_instance_;
|
||||||
|
delete HelloReply_reflection_;
|
||||||
|
}
|
||||||
|
|
||||||
|
void protobuf_AddDesc_helloworld_2eproto() {
|
||||||
|
static bool already_here = false;
|
||||||
|
if (already_here) return;
|
||||||
|
already_here = true;
|
||||||
|
GOOGLE_PROTOBUF_VERIFY_VERSION;
|
||||||
|
|
||||||
|
::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
|
||||||
|
"\n\020helloworld.proto\022\nhelloworld\"\034\n\014HelloR"
|
||||||
|
"equest\022\014\n\004name\030\001 \001(\t\"\035\n\nHelloReply\022\017\n\007me"
|
||||||
|
"ssage\030\001 \001(\t2I\n\007Greeter\022>\n\010sayHello\022\030.hel"
|
||||||
|
"loworld.HelloRequest\032\026.helloworld.HelloR"
|
||||||
|
"eply\"\000B\t\n\007ex.grpcb\006proto3", 185);
|
||||||
|
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
|
||||||
|
"helloworld.proto", &protobuf_RegisterTypes);
|
||||||
|
HelloRequest::default_instance_ = new HelloRequest();
|
||||||
|
HelloReply::default_instance_ = new HelloReply();
|
||||||
|
HelloRequest::default_instance_->InitAsDefaultInstance();
|
||||||
|
HelloReply::default_instance_->InitAsDefaultInstance();
|
||||||
|
::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_helloworld_2eproto);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Force AddDescriptors() to be called at static initialization time.
|
||||||
|
struct StaticDescriptorInitializer_helloworld_2eproto {
|
||||||
|
StaticDescriptorInitializer_helloworld_2eproto() {
|
||||||
|
protobuf_AddDesc_helloworld_2eproto();
|
||||||
|
}
|
||||||
|
} static_descriptor_initializer_helloworld_2eproto_;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
static void MergeFromFail(int line) GOOGLE_ATTRIBUTE_COLD;
|
||||||
|
static void MergeFromFail(int line) {
|
||||||
|
GOOGLE_CHECK(false) << __FILE__ << ":" << line;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
|
||||||
|
// ===================================================================
|
||||||
|
|
||||||
|
#ifndef _MSC_VER
|
||||||
|
const int HelloRequest::kNameFieldNumber;
|
||||||
|
#endif // !_MSC_VER
|
||||||
|
|
||||||
|
HelloRequest::HelloRequest()
|
||||||
|
: ::google::protobuf::Message() , _internal_metadata_(NULL) {
|
||||||
|
SharedCtor();
|
||||||
|
// @@protoc_insertion_point(constructor:helloworld.HelloRequest)
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::InitAsDefaultInstance() {
|
||||||
|
_is_default_instance_ = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
HelloRequest::HelloRequest(const HelloRequest& from)
|
||||||
|
: ::google::protobuf::Message(),
|
||||||
|
_internal_metadata_(NULL) {
|
||||||
|
SharedCtor();
|
||||||
|
MergeFrom(from);
|
||||||
|
// @@protoc_insertion_point(copy_constructor:helloworld.HelloRequest)
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::SharedCtor() {
|
||||||
|
_is_default_instance_ = false;
|
||||||
|
::google::protobuf::internal::GetEmptyString();
|
||||||
|
_cached_size_ = 0;
|
||||||
|
name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
|
||||||
|
HelloRequest::~HelloRequest() {
|
||||||
|
// @@protoc_insertion_point(destructor:helloworld.HelloRequest)
|
||||||
|
SharedDtor();
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::SharedDtor() {
|
||||||
|
name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
if (this != default_instance_) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::SetCachedSize(int size) const {
|
||||||
|
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
||||||
|
_cached_size_ = size;
|
||||||
|
GOOGLE_SAFE_CONCURRENT_WRITES_END();
|
||||||
|
}
|
||||||
|
const ::google::protobuf::Descriptor* HelloRequest::descriptor() {
|
||||||
|
protobuf_AssignDescriptorsOnce();
|
||||||
|
return HelloRequest_descriptor_;
|
||||||
|
}
|
||||||
|
|
||||||
|
const HelloRequest& HelloRequest::default_instance() {
|
||||||
|
if (default_instance_ == NULL) protobuf_AddDesc_helloworld_2eproto();
|
||||||
|
return *default_instance_;
|
||||||
|
}
|
||||||
|
|
||||||
|
HelloRequest* HelloRequest::default_instance_ = NULL;
|
||||||
|
|
||||||
|
HelloRequest* HelloRequest::New(::google::protobuf::Arena* arena) const {
|
||||||
|
HelloRequest* n = new HelloRequest;
|
||||||
|
if (arena != NULL) {
|
||||||
|
arena->Own(n);
|
||||||
|
}
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::Clear() {
|
||||||
|
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HelloRequest::MergePartialFromCodedStream(
|
||||||
|
::google::protobuf::io::CodedInputStream* input) {
|
||||||
|
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
|
||||||
|
::google::protobuf::uint32 tag;
|
||||||
|
// @@protoc_insertion_point(parse_start:helloworld.HelloRequest)
|
||||||
|
for (;;) {
|
||||||
|
::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
|
||||||
|
tag = p.first;
|
||||||
|
if (!p.second) goto handle_unusual;
|
||||||
|
switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
|
||||||
|
// optional string name = 1;
|
||||||
|
case 1: {
|
||||||
|
if (tag == 10) {
|
||||||
|
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
|
||||||
|
input, this->mutable_name()));
|
||||||
|
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
|
||||||
|
this->name().data(), this->name().length(),
|
||||||
|
::google::protobuf::internal::WireFormat::PARSE,
|
||||||
|
"helloworld.HelloRequest.name");
|
||||||
|
} else {
|
||||||
|
goto handle_unusual;
|
||||||
|
}
|
||||||
|
if (input->ExpectAtEnd()) goto success;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
handle_unusual:
|
||||||
|
if (tag == 0 ||
|
||||||
|
::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
|
||||||
|
::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
||||||
|
goto success;
|
||||||
|
}
|
||||||
|
DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
success:
|
||||||
|
// @@protoc_insertion_point(parse_success:helloworld.HelloRequest)
|
||||||
|
return true;
|
||||||
|
failure:
|
||||||
|
// @@protoc_insertion_point(parse_failure:helloworld.HelloRequest)
|
||||||
|
return false;
|
||||||
|
#undef DO_
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::SerializeWithCachedSizes(
|
||||||
|
::google::protobuf::io::CodedOutputStream* output) const {
|
||||||
|
// @@protoc_insertion_point(serialize_start:helloworld.HelloRequest)
|
||||||
|
// optional string name = 1;
|
||||||
|
if (this->name().size() > 0) {
|
||||||
|
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
|
||||||
|
this->name().data(), this->name().length(),
|
||||||
|
::google::protobuf::internal::WireFormat::SERIALIZE,
|
||||||
|
"helloworld.HelloRequest.name");
|
||||||
|
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
|
||||||
|
1, this->name(), output);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(serialize_end:helloworld.HelloRequest)
|
||||||
|
}
|
||||||
|
|
||||||
|
::google::protobuf::uint8* HelloRequest::SerializeWithCachedSizesToArray(
|
||||||
|
::google::protobuf::uint8* target) const {
|
||||||
|
// @@protoc_insertion_point(serialize_to_array_start:helloworld.HelloRequest)
|
||||||
|
// optional string name = 1;
|
||||||
|
if (this->name().size() > 0) {
|
||||||
|
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
|
||||||
|
this->name().data(), this->name().length(),
|
||||||
|
::google::protobuf::internal::WireFormat::SERIALIZE,
|
||||||
|
"helloworld.HelloRequest.name");
|
||||||
|
target =
|
||||||
|
::google::protobuf::internal::WireFormatLite::WriteStringToArray(
|
||||||
|
1, this->name(), target);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(serialize_to_array_end:helloworld.HelloRequest)
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
int HelloRequest::ByteSize() const {
|
||||||
|
int total_size = 0;
|
||||||
|
|
||||||
|
// optional string name = 1;
|
||||||
|
if (this->name().size() > 0) {
|
||||||
|
total_size += 1 +
|
||||||
|
::google::protobuf::internal::WireFormatLite::StringSize(
|
||||||
|
this->name());
|
||||||
|
}
|
||||||
|
|
||||||
|
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
||||||
|
_cached_size_ = total_size;
|
||||||
|
GOOGLE_SAFE_CONCURRENT_WRITES_END();
|
||||||
|
return total_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::MergeFrom(const ::google::protobuf::Message& from) {
|
||||||
|
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
|
||||||
|
const HelloRequest* source =
|
||||||
|
::google::protobuf::internal::dynamic_cast_if_available<const HelloRequest*>(
|
||||||
|
&from);
|
||||||
|
if (source == NULL) {
|
||||||
|
::google::protobuf::internal::ReflectionOps::Merge(from, this);
|
||||||
|
} else {
|
||||||
|
MergeFrom(*source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::MergeFrom(const HelloRequest& from) {
|
||||||
|
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
|
||||||
|
if (from.name().size() > 0) {
|
||||||
|
|
||||||
|
name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::CopyFrom(const ::google::protobuf::Message& from) {
|
||||||
|
if (&from == this) return;
|
||||||
|
Clear();
|
||||||
|
MergeFrom(from);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::CopyFrom(const HelloRequest& from) {
|
||||||
|
if (&from == this) return;
|
||||||
|
Clear();
|
||||||
|
MergeFrom(from);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HelloRequest::IsInitialized() const {
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloRequest::Swap(HelloRequest* other) {
|
||||||
|
if (other == this) return;
|
||||||
|
InternalSwap(other);
|
||||||
|
}
|
||||||
|
void HelloRequest::InternalSwap(HelloRequest* other) {
|
||||||
|
name_.Swap(&other->name_);
|
||||||
|
_internal_metadata_.Swap(&other->_internal_metadata_);
|
||||||
|
std::swap(_cached_size_, other->_cached_size_);
|
||||||
|
}
|
||||||
|
|
||||||
|
::google::protobuf::Metadata HelloRequest::GetMetadata() const {
|
||||||
|
protobuf_AssignDescriptorsOnce();
|
||||||
|
::google::protobuf::Metadata metadata;
|
||||||
|
metadata.descriptor = HelloRequest_descriptor_;
|
||||||
|
metadata.reflection = HelloRequest_reflection_;
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ===================================================================
|
||||||
|
|
||||||
|
#ifndef _MSC_VER
|
||||||
|
const int HelloReply::kMessageFieldNumber;
|
||||||
|
#endif // !_MSC_VER
|
||||||
|
|
||||||
|
HelloReply::HelloReply()
|
||||||
|
: ::google::protobuf::Message() , _internal_metadata_(NULL) {
|
||||||
|
SharedCtor();
|
||||||
|
// @@protoc_insertion_point(constructor:helloworld.HelloReply)
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::InitAsDefaultInstance() {
|
||||||
|
_is_default_instance_ = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
HelloReply::HelloReply(const HelloReply& from)
|
||||||
|
: ::google::protobuf::Message(),
|
||||||
|
_internal_metadata_(NULL) {
|
||||||
|
SharedCtor();
|
||||||
|
MergeFrom(from);
|
||||||
|
// @@protoc_insertion_point(copy_constructor:helloworld.HelloReply)
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::SharedCtor() {
|
||||||
|
_is_default_instance_ = false;
|
||||||
|
::google::protobuf::internal::GetEmptyString();
|
||||||
|
_cached_size_ = 0;
|
||||||
|
message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
|
||||||
|
HelloReply::~HelloReply() {
|
||||||
|
// @@protoc_insertion_point(destructor:helloworld.HelloReply)
|
||||||
|
SharedDtor();
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::SharedDtor() {
|
||||||
|
message_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
if (this != default_instance_) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::SetCachedSize(int size) const {
|
||||||
|
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
||||||
|
_cached_size_ = size;
|
||||||
|
GOOGLE_SAFE_CONCURRENT_WRITES_END();
|
||||||
|
}
|
||||||
|
const ::google::protobuf::Descriptor* HelloReply::descriptor() {
|
||||||
|
protobuf_AssignDescriptorsOnce();
|
||||||
|
return HelloReply_descriptor_;
|
||||||
|
}
|
||||||
|
|
||||||
|
const HelloReply& HelloReply::default_instance() {
|
||||||
|
if (default_instance_ == NULL) protobuf_AddDesc_helloworld_2eproto();
|
||||||
|
return *default_instance_;
|
||||||
|
}
|
||||||
|
|
||||||
|
HelloReply* HelloReply::default_instance_ = NULL;
|
||||||
|
|
||||||
|
HelloReply* HelloReply::New(::google::protobuf::Arena* arena) const {
|
||||||
|
HelloReply* n = new HelloReply;
|
||||||
|
if (arena != NULL) {
|
||||||
|
arena->Own(n);
|
||||||
|
}
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::Clear() {
|
||||||
|
message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HelloReply::MergePartialFromCodedStream(
|
||||||
|
::google::protobuf::io::CodedInputStream* input) {
|
||||||
|
#define DO_(EXPRESSION) if (!(EXPRESSION)) goto failure
|
||||||
|
::google::protobuf::uint32 tag;
|
||||||
|
// @@protoc_insertion_point(parse_start:helloworld.HelloReply)
|
||||||
|
for (;;) {
|
||||||
|
::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoff(127);
|
||||||
|
tag = p.first;
|
||||||
|
if (!p.second) goto handle_unusual;
|
||||||
|
switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
|
||||||
|
// optional string message = 1;
|
||||||
|
case 1: {
|
||||||
|
if (tag == 10) {
|
||||||
|
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
|
||||||
|
input, this->mutable_message()));
|
||||||
|
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
|
||||||
|
this->message().data(), this->message().length(),
|
||||||
|
::google::protobuf::internal::WireFormat::PARSE,
|
||||||
|
"helloworld.HelloReply.message");
|
||||||
|
} else {
|
||||||
|
goto handle_unusual;
|
||||||
|
}
|
||||||
|
if (input->ExpectAtEnd()) goto success;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
handle_unusual:
|
||||||
|
if (tag == 0 ||
|
||||||
|
::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
|
||||||
|
::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
|
||||||
|
goto success;
|
||||||
|
}
|
||||||
|
DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
success:
|
||||||
|
// @@protoc_insertion_point(parse_success:helloworld.HelloReply)
|
||||||
|
return true;
|
||||||
|
failure:
|
||||||
|
// @@protoc_insertion_point(parse_failure:helloworld.HelloReply)
|
||||||
|
return false;
|
||||||
|
#undef DO_
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::SerializeWithCachedSizes(
|
||||||
|
::google::protobuf::io::CodedOutputStream* output) const {
|
||||||
|
// @@protoc_insertion_point(serialize_start:helloworld.HelloReply)
|
||||||
|
// optional string message = 1;
|
||||||
|
if (this->message().size() > 0) {
|
||||||
|
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
|
||||||
|
this->message().data(), this->message().length(),
|
||||||
|
::google::protobuf::internal::WireFormat::SERIALIZE,
|
||||||
|
"helloworld.HelloReply.message");
|
||||||
|
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
|
||||||
|
1, this->message(), output);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(serialize_end:helloworld.HelloReply)
|
||||||
|
}
|
||||||
|
|
||||||
|
::google::protobuf::uint8* HelloReply::SerializeWithCachedSizesToArray(
|
||||||
|
::google::protobuf::uint8* target) const {
|
||||||
|
// @@protoc_insertion_point(serialize_to_array_start:helloworld.HelloReply)
|
||||||
|
// optional string message = 1;
|
||||||
|
if (this->message().size() > 0) {
|
||||||
|
::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
|
||||||
|
this->message().data(), this->message().length(),
|
||||||
|
::google::protobuf::internal::WireFormat::SERIALIZE,
|
||||||
|
"helloworld.HelloReply.message");
|
||||||
|
target =
|
||||||
|
::google::protobuf::internal::WireFormatLite::WriteStringToArray(
|
||||||
|
1, this->message(), target);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(serialize_to_array_end:helloworld.HelloReply)
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
int HelloReply::ByteSize() const {
|
||||||
|
int total_size = 0;
|
||||||
|
|
||||||
|
// optional string message = 1;
|
||||||
|
if (this->message().size() > 0) {
|
||||||
|
total_size += 1 +
|
||||||
|
::google::protobuf::internal::WireFormatLite::StringSize(
|
||||||
|
this->message());
|
||||||
|
}
|
||||||
|
|
||||||
|
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
|
||||||
|
_cached_size_ = total_size;
|
||||||
|
GOOGLE_SAFE_CONCURRENT_WRITES_END();
|
||||||
|
return total_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::MergeFrom(const ::google::protobuf::Message& from) {
|
||||||
|
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
|
||||||
|
const HelloReply* source =
|
||||||
|
::google::protobuf::internal::dynamic_cast_if_available<const HelloReply*>(
|
||||||
|
&from);
|
||||||
|
if (source == NULL) {
|
||||||
|
::google::protobuf::internal::ReflectionOps::Merge(from, this);
|
||||||
|
} else {
|
||||||
|
MergeFrom(*source);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::MergeFrom(const HelloReply& from) {
|
||||||
|
if (GOOGLE_PREDICT_FALSE(&from == this)) MergeFromFail(__LINE__);
|
||||||
|
if (from.message().size() > 0) {
|
||||||
|
|
||||||
|
message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::CopyFrom(const ::google::protobuf::Message& from) {
|
||||||
|
if (&from == this) return;
|
||||||
|
Clear();
|
||||||
|
MergeFrom(from);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::CopyFrom(const HelloReply& from) {
|
||||||
|
if (&from == this) return;
|
||||||
|
Clear();
|
||||||
|
MergeFrom(from);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool HelloReply::IsInitialized() const {
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HelloReply::Swap(HelloReply* other) {
|
||||||
|
if (other == this) return;
|
||||||
|
InternalSwap(other);
|
||||||
|
}
|
||||||
|
void HelloReply::InternalSwap(HelloReply* other) {
|
||||||
|
message_.Swap(&other->message_);
|
||||||
|
_internal_metadata_.Swap(&other->_internal_metadata_);
|
||||||
|
std::swap(_cached_size_, other->_cached_size_);
|
||||||
|
}
|
||||||
|
|
||||||
|
::google::protobuf::Metadata HelloReply::GetMetadata() const {
|
||||||
|
protobuf_AssignDescriptorsOnce();
|
||||||
|
::google::protobuf::Metadata metadata;
|
||||||
|
metadata.descriptor = HelloReply_descriptor_;
|
||||||
|
metadata.reflection = HelloReply_reflection_;
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static const char* Greeter_method_names[] = {
|
||||||
|
"/helloworld.Greeter/sayHello",
|
||||||
|
};
|
||||||
|
|
||||||
|
Greeter::Stub* Greeter::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel) {
|
||||||
|
Greeter::Stub* stub = new Greeter::Stub();
|
||||||
|
stub->set_channel(channel);
|
||||||
|
return stub;
|
||||||
|
};
|
||||||
|
|
||||||
|
::grpc::Status Greeter::Stub::sayHello(::grpc::ClientContext* context, const ::helloworld::HelloRequest& request, ::helloworld::HelloReply* response) {
|
||||||
|
return ::grpc::BlockingUnaryCall(channel(),::grpc::RpcMethod(Greeter_method_names[0]), context, request, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
::grpc::ClientAsyncResponseReader< ::helloworld::HelloReply>* Greeter::Stub::sayHello(::grpc::ClientContext* context, const ::helloworld::HelloRequest& request, ::grpc::CompletionQueue* cq, void* tag) {
|
||||||
|
return new ::grpc::ClientAsyncResponseReader< ::helloworld::HelloReply>(channel(), cq, ::grpc::RpcMethod(Greeter_method_names[0]), context, request, tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
Greeter::AsyncService::AsyncService(::grpc::CompletionQueue* cq) : ::grpc::AsynchronousService(cq, Greeter_method_names, 1) {}
|
||||||
|
|
||||||
|
Greeter::Service::~Service() {
|
||||||
|
delete service_;
|
||||||
|
}
|
||||||
|
|
||||||
|
::grpc::Status Greeter::Service::sayHello(::grpc::ServerContext* context, const ::helloworld::HelloRequest* request, ::helloworld::HelloReply* response) {
|
||||||
|
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Greeter::AsyncService::RequestsayHello(::grpc::ServerContext* context, ::helloworld::HelloRequest* request, ::grpc::ServerAsyncResponseWriter< ::helloworld::HelloReply>* response, ::grpc::CompletionQueue* cq, void* tag) {
|
||||||
|
AsynchronousService::RequestAsyncUnary(0, context, request, response, cq, tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
::grpc::RpcService* Greeter::Service::service() {
|
||||||
|
if (service_ != nullptr) {
|
||||||
|
return service_;
|
||||||
|
}
|
||||||
|
service_ = new ::grpc::RpcService();
|
||||||
|
service_->AddMethod(new ::grpc::RpcServiceMethod(
|
||||||
|
Greeter_method_names[0],
|
||||||
|
::grpc::RpcMethod::NORMAL_RPC,
|
||||||
|
new ::grpc::RpcMethodHandler< Greeter::Service, ::helloworld::HelloRequest, ::helloworld::HelloReply>(
|
||||||
|
std::function< ::grpc::Status(Greeter::Service*, ::grpc::ServerContext*, const ::helloworld::HelloRequest*, ::helloworld::HelloReply*)>(&Greeter::Service::sayHello), this),
|
||||||
|
new ::helloworld::HelloRequest, new ::helloworld::HelloReply));
|
||||||
|
return service_;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(namespace_scope)
|
||||||
|
|
||||||
|
} // namespace helloworld
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(global_scope)
|
||||||
|
|
@ -0,0 +1,359 @@
|
||||||
|
// Generated by the protocol buffer compiler. DO NOT EDIT!
|
||||||
|
// source: helloworld.proto
|
||||||
|
|
||||||
|
#ifndef PROTOBUF_helloworld_2eproto__INCLUDED
|
||||||
|
#define PROTOBUF_helloworld_2eproto__INCLUDED
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include <google/protobuf/stubs/common.h>
|
||||||
|
|
||||||
|
#if GOOGLE_PROTOBUF_VERSION < 3000000
|
||||||
|
#error This file was generated by a newer version of protoc which is
|
||||||
|
#error incompatible with your Protocol Buffer headers. Please update
|
||||||
|
#error your headers.
|
||||||
|
#endif
|
||||||
|
#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
|
||||||
|
#error This file was generated by an older version of protoc which is
|
||||||
|
#error incompatible with your Protocol Buffer headers. Please
|
||||||
|
#error regenerate this file with a newer version of protoc.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <google/protobuf/arena.h>
|
||||||
|
#include <google/protobuf/arenastring.h>
|
||||||
|
#include <google/protobuf/generated_message_util.h>
|
||||||
|
#include <google/protobuf/metadata.h>
|
||||||
|
#include <google/protobuf/message.h>
|
||||||
|
#include <google/protobuf/repeated_field.h>
|
||||||
|
#include <google/protobuf/extension_set.h>
|
||||||
|
#include <google/protobuf/unknown_field_set.h>
|
||||||
|
#include <grpc++/impl/internal_stub.h>
|
||||||
|
#include <grpc++/impl/service_type.h>
|
||||||
|
#include <grpc++/status.h>
|
||||||
|
|
||||||
|
namespace grpc {
|
||||||
|
class CompletionQueue;
|
||||||
|
class ChannelInterface;
|
||||||
|
class RpcService;
|
||||||
|
class ServerContext;
|
||||||
|
template <class OutMessage> class ClientAsyncResponseReader;
|
||||||
|
template <class OutMessage> class ServerAsyncResponseWriter;
|
||||||
|
} // namespace grpc
|
||||||
|
// @@protoc_insertion_point(includes)
|
||||||
|
|
||||||
|
namespace helloworld {
|
||||||
|
|
||||||
|
// Internal implementation detail -- do not call these.
|
||||||
|
void protobuf_AddDesc_helloworld_2eproto();
|
||||||
|
void protobuf_AssignDesc_helloworld_2eproto();
|
||||||
|
void protobuf_ShutdownFile_helloworld_2eproto();
|
||||||
|
|
||||||
|
class HelloRequest;
|
||||||
|
class HelloReply;
|
||||||
|
|
||||||
|
// ===================================================================
|
||||||
|
|
||||||
|
class HelloRequest : public ::google::protobuf::Message {
|
||||||
|
public:
|
||||||
|
HelloRequest();
|
||||||
|
virtual ~HelloRequest();
|
||||||
|
|
||||||
|
HelloRequest(const HelloRequest& from);
|
||||||
|
|
||||||
|
inline HelloRequest& operator=(const HelloRequest& from) {
|
||||||
|
CopyFrom(from);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const ::google::protobuf::Descriptor* descriptor();
|
||||||
|
static const HelloRequest& default_instance();
|
||||||
|
|
||||||
|
void Swap(HelloRequest* other);
|
||||||
|
|
||||||
|
// implements Message ----------------------------------------------
|
||||||
|
|
||||||
|
inline HelloRequest* New() const { return New(NULL); }
|
||||||
|
|
||||||
|
HelloRequest* New(::google::protobuf::Arena* arena) const;
|
||||||
|
void CopyFrom(const ::google::protobuf::Message& from);
|
||||||
|
void MergeFrom(const ::google::protobuf::Message& from);
|
||||||
|
void CopyFrom(const HelloRequest& from);
|
||||||
|
void MergeFrom(const HelloRequest& from);
|
||||||
|
void Clear();
|
||||||
|
bool IsInitialized() const;
|
||||||
|
|
||||||
|
int ByteSize() const;
|
||||||
|
bool MergePartialFromCodedStream(
|
||||||
|
::google::protobuf::io::CodedInputStream* input);
|
||||||
|
void SerializeWithCachedSizes(
|
||||||
|
::google::protobuf::io::CodedOutputStream* output) const;
|
||||||
|
::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
|
||||||
|
int GetCachedSize() const { return _cached_size_; }
|
||||||
|
private:
|
||||||
|
void SharedCtor();
|
||||||
|
void SharedDtor();
|
||||||
|
void SetCachedSize(int size) const;
|
||||||
|
void InternalSwap(HelloRequest* other);
|
||||||
|
private:
|
||||||
|
inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
|
||||||
|
return _internal_metadata_.arena();
|
||||||
|
}
|
||||||
|
inline void* MaybeArenaPtr() const {
|
||||||
|
return _internal_metadata_.raw_arena_ptr();
|
||||||
|
}
|
||||||
|
public:
|
||||||
|
|
||||||
|
::google::protobuf::Metadata GetMetadata() const;
|
||||||
|
|
||||||
|
// nested types ----------------------------------------------------
|
||||||
|
|
||||||
|
// accessors -------------------------------------------------------
|
||||||
|
|
||||||
|
// optional string name = 1;
|
||||||
|
inline void clear_name();
|
||||||
|
static const int kNameFieldNumber = 1;
|
||||||
|
inline const ::std::string& name() const;
|
||||||
|
inline void set_name(const ::std::string& value);
|
||||||
|
inline void set_name(const char* value);
|
||||||
|
inline void set_name(const char* value, size_t size);
|
||||||
|
inline ::std::string* mutable_name();
|
||||||
|
inline ::std::string* release_name();
|
||||||
|
inline void set_allocated_name(::std::string* name);
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(class_scope:helloworld.HelloRequest)
|
||||||
|
private:
|
||||||
|
|
||||||
|
::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
|
||||||
|
bool _is_default_instance_;
|
||||||
|
::google::protobuf::internal::ArenaStringPtr name_;
|
||||||
|
mutable int _cached_size_;
|
||||||
|
friend void protobuf_AddDesc_helloworld_2eproto();
|
||||||
|
friend void protobuf_AssignDesc_helloworld_2eproto();
|
||||||
|
friend void protobuf_ShutdownFile_helloworld_2eproto();
|
||||||
|
|
||||||
|
void InitAsDefaultInstance();
|
||||||
|
static HelloRequest* default_instance_;
|
||||||
|
};
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
|
||||||
|
class HelloReply : public ::google::protobuf::Message {
|
||||||
|
public:
|
||||||
|
HelloReply();
|
||||||
|
virtual ~HelloReply();
|
||||||
|
|
||||||
|
HelloReply(const HelloReply& from);
|
||||||
|
|
||||||
|
inline HelloReply& operator=(const HelloReply& from) {
|
||||||
|
CopyFrom(from);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const ::google::protobuf::Descriptor* descriptor();
|
||||||
|
static const HelloReply& default_instance();
|
||||||
|
|
||||||
|
void Swap(HelloReply* other);
|
||||||
|
|
||||||
|
// implements Message ----------------------------------------------
|
||||||
|
|
||||||
|
inline HelloReply* New() const { return New(NULL); }
|
||||||
|
|
||||||
|
HelloReply* New(::google::protobuf::Arena* arena) const;
|
||||||
|
void CopyFrom(const ::google::protobuf::Message& from);
|
||||||
|
void MergeFrom(const ::google::protobuf::Message& from);
|
||||||
|
void CopyFrom(const HelloReply& from);
|
||||||
|
void MergeFrom(const HelloReply& from);
|
||||||
|
void Clear();
|
||||||
|
bool IsInitialized() const;
|
||||||
|
|
||||||
|
int ByteSize() const;
|
||||||
|
bool MergePartialFromCodedStream(
|
||||||
|
::google::protobuf::io::CodedInputStream* input);
|
||||||
|
void SerializeWithCachedSizes(
|
||||||
|
::google::protobuf::io::CodedOutputStream* output) const;
|
||||||
|
::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
|
||||||
|
int GetCachedSize() const { return _cached_size_; }
|
||||||
|
private:
|
||||||
|
void SharedCtor();
|
||||||
|
void SharedDtor();
|
||||||
|
void SetCachedSize(int size) const;
|
||||||
|
void InternalSwap(HelloReply* other);
|
||||||
|
private:
|
||||||
|
inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
|
||||||
|
return _internal_metadata_.arena();
|
||||||
|
}
|
||||||
|
inline void* MaybeArenaPtr() const {
|
||||||
|
return _internal_metadata_.raw_arena_ptr();
|
||||||
|
}
|
||||||
|
public:
|
||||||
|
|
||||||
|
::google::protobuf::Metadata GetMetadata() const;
|
||||||
|
|
||||||
|
// nested types ----------------------------------------------------
|
||||||
|
|
||||||
|
// accessors -------------------------------------------------------
|
||||||
|
|
||||||
|
// optional string message = 1;
|
||||||
|
inline void clear_message();
|
||||||
|
static const int kMessageFieldNumber = 1;
|
||||||
|
inline const ::std::string& message() const;
|
||||||
|
inline void set_message(const ::std::string& value);
|
||||||
|
inline void set_message(const char* value);
|
||||||
|
inline void set_message(const char* value, size_t size);
|
||||||
|
inline ::std::string* mutable_message();
|
||||||
|
inline ::std::string* release_message();
|
||||||
|
inline void set_allocated_message(::std::string* message);
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(class_scope:helloworld.HelloReply)
|
||||||
|
private:
|
||||||
|
|
||||||
|
::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
|
||||||
|
bool _is_default_instance_;
|
||||||
|
::google::protobuf::internal::ArenaStringPtr message_;
|
||||||
|
mutable int _cached_size_;
|
||||||
|
friend void protobuf_AddDesc_helloworld_2eproto();
|
||||||
|
friend void protobuf_AssignDesc_helloworld_2eproto();
|
||||||
|
friend void protobuf_ShutdownFile_helloworld_2eproto();
|
||||||
|
|
||||||
|
void InitAsDefaultInstance();
|
||||||
|
static HelloReply* default_instance_;
|
||||||
|
};
|
||||||
|
// ===================================================================
|
||||||
|
|
||||||
|
|
||||||
|
// ===================================================================
|
||||||
|
|
||||||
|
// HelloRequest
|
||||||
|
|
||||||
|
// optional string name = 1;
|
||||||
|
inline void HelloRequest::clear_name() {
|
||||||
|
name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
inline const ::std::string& HelloRequest::name() const {
|
||||||
|
// @@protoc_insertion_point(field_get:helloworld.HelloRequest.name)
|
||||||
|
return name_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
inline void HelloRequest::set_name(const ::std::string& value) {
|
||||||
|
|
||||||
|
name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
|
||||||
|
// @@protoc_insertion_point(field_set:helloworld.HelloRequest.name)
|
||||||
|
}
|
||||||
|
inline void HelloRequest::set_name(const char* value) {
|
||||||
|
|
||||||
|
name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
|
||||||
|
// @@protoc_insertion_point(field_set_char:helloworld.HelloRequest.name)
|
||||||
|
}
|
||||||
|
inline void HelloRequest::set_name(const char* value, size_t size) {
|
||||||
|
|
||||||
|
name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
|
||||||
|
::std::string(reinterpret_cast<const char*>(value), size));
|
||||||
|
// @@protoc_insertion_point(field_set_pointer:helloworld.HelloRequest.name)
|
||||||
|
}
|
||||||
|
inline ::std::string* HelloRequest::mutable_name() {
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(field_mutable:helloworld.HelloRequest.name)
|
||||||
|
return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
inline ::std::string* HelloRequest::release_name() {
|
||||||
|
|
||||||
|
return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
inline void HelloRequest::set_allocated_name(::std::string* name) {
|
||||||
|
if (name != NULL) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
|
||||||
|
// @@protoc_insertion_point(field_set_allocated:helloworld.HelloRequest.name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
|
||||||
|
// HelloReply
|
||||||
|
|
||||||
|
// optional string message = 1;
|
||||||
|
inline void HelloReply::clear_message() {
|
||||||
|
message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
inline const ::std::string& HelloReply::message() const {
|
||||||
|
// @@protoc_insertion_point(field_get:helloworld.HelloReply.message)
|
||||||
|
return message_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
inline void HelloReply::set_message(const ::std::string& value) {
|
||||||
|
|
||||||
|
message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
|
||||||
|
// @@protoc_insertion_point(field_set:helloworld.HelloReply.message)
|
||||||
|
}
|
||||||
|
inline void HelloReply::set_message(const char* value) {
|
||||||
|
|
||||||
|
message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
|
||||||
|
// @@protoc_insertion_point(field_set_char:helloworld.HelloReply.message)
|
||||||
|
}
|
||||||
|
inline void HelloReply::set_message(const char* value, size_t size) {
|
||||||
|
|
||||||
|
message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
|
||||||
|
::std::string(reinterpret_cast<const char*>(value), size));
|
||||||
|
// @@protoc_insertion_point(field_set_pointer:helloworld.HelloReply.message)
|
||||||
|
}
|
||||||
|
inline ::std::string* HelloReply::mutable_message() {
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(field_mutable:helloworld.HelloReply.message)
|
||||||
|
return message_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
inline ::std::string* HelloReply::release_message() {
|
||||||
|
|
||||||
|
return message_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
|
||||||
|
}
|
||||||
|
inline void HelloReply::set_allocated_message(::std::string* message) {
|
||||||
|
if (message != NULL) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
message_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), message);
|
||||||
|
// @@protoc_insertion_point(field_set_allocated:helloworld.HelloReply.message)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class Greeter final {
|
||||||
|
public:
|
||||||
|
class Stub final : public ::grpc::InternalStub {
|
||||||
|
public:
|
||||||
|
::grpc::Status sayHello(::grpc::ClientContext* context, const ::helloworld::HelloRequest& request, ::helloworld::HelloReply* response);
|
||||||
|
::grpc::ClientAsyncResponseReader< ::helloworld::HelloReply>* sayHello(::grpc::ClientContext* context, const ::helloworld::HelloRequest& request, ::grpc::CompletionQueue* cq, void* tag);
|
||||||
|
};
|
||||||
|
static Stub* NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);
|
||||||
|
|
||||||
|
class Service : public ::grpc::SynchronousService {
|
||||||
|
public:
|
||||||
|
Service() : service_(nullptr) {}
|
||||||
|
virtual ~Service();
|
||||||
|
virtual ::grpc::Status sayHello(::grpc::ServerContext* context, const ::helloworld::HelloRequest* request, ::helloworld::HelloReply* response);
|
||||||
|
::grpc::RpcService* service() override final;
|
||||||
|
private:
|
||||||
|
::grpc::RpcService* service_;
|
||||||
|
};
|
||||||
|
class AsyncService final : public ::grpc::AsynchronousService {
|
||||||
|
public:
|
||||||
|
explicit AsyncService(::grpc::CompletionQueue* cq);
|
||||||
|
~AsyncService() {};
|
||||||
|
void RequestsayHello(::grpc::ServerContext* context, ::helloworld::HelloRequest* request, ::grpc::ServerAsyncResponseWriter< ::helloworld::HelloReply>* response, ::grpc::CompletionQueue* cq, void *tag);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(namespace_scope)
|
||||||
|
|
||||||
|
} // namespace helloworld
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
|
namespace google {
|
||||||
|
namespace protobuf {
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace protobuf
|
||||||
|
} // namespace google
|
||||||
|
#endif // SWIG
|
||||||
|
|
||||||
|
// @@protoc_insertion_point(global_scope)
|
||||||
|
|
||||||
|
#endif // PROTOBUF_helloworld_2eproto__INCLUDED
|
||||||
Loading…
Reference in New Issue