34 #include "examples/protos/route_guide.grpc.pb.h"
36 #include "route_guide.grpc.pb.h"
48 using routeguide::RouteGuide;
54 p.set_latitude(latitude);
55 p.set_longitude(longitude);
62 f.mutable_location()->CopyFrom(
MakePoint(latitude, longitude));
70 n.mutable_location()->CopyFrom(
MakePoint(latitude, longitude));
95 rect.mutable_lo()->set_latitude(400000000);
96 rect.mutable_lo()->set_longitude(-750000000);
97 rect.mutable_hi()->set_latitude(420000000);
98 rect.mutable_hi()->set_longitude(-730000000);
99 std::cout <<
"Looking for features between 40, -75 and 42, -73"
102 std::unique_ptr<ClientReader<Feature> >
reader(
104 while (
reader->Read(&feature)) {
105 std::cout <<
"Found feature called " << feature.name() <<
" at "
107 << feature.location().longitude() /
kCoordFactor_ << std::endl;
111 std::cout <<
"ListFeatures rpc succeeded." << std::endl;
113 std::cout <<
"ListFeatures rpc failed." << std::endl;
121 const int kPoints = 10;
124 std::default_random_engine generator(
seed);
125 std::uniform_int_distribution<int> feature_distribution(
127 std::uniform_int_distribution<int> delay_distribution(500, 1500);
129 std::unique_ptr<ClientWriter<Point> >
writer(
131 for (
int i = 0;
i < kPoints;
i++) {
133 std::cout <<
"Visiting point " <<
f.location().latitude() /
kCoordFactor_
136 if (!
writer->Write(
f.location())) {
140 std::this_thread::sleep_for(
141 std::chrono::milliseconds(delay_distribution(generator)));
146 std::cout <<
"Finished trip with " <<
stats.point_count() <<
" points\n"
147 <<
"Passed " <<
stats.feature_count() <<
" features\n"
148 <<
"Travelled " <<
stats.distance() <<
" meters\n"
149 <<
"It took " <<
stats.elapsed_time() <<
" seconds"
152 std::cout <<
"RecordRoute rpc failed." << std::endl;
159 std::shared_ptr<ClientReaderWriter<RouteNote, RouteNote> >
stream(
163 std::vector<RouteNote> notes{
MakeRouteNote(
"First message", 0, 0),
168 std::cout <<
"Sending message " <<
note.message() <<
" at "
169 <<
note.location().latitude() <<
", "
170 <<
note.location().longitude() << std::endl;
177 while (
stream->Read(&server_note)) {
178 std::cout <<
"Got message " << server_note.message() <<
" at "
179 << server_note.location().latitude() <<
", "
180 << server_note.location().longitude() << std::endl;
185 std::cout <<
"RouteChat rpc failed." << std::endl;
194 std::cout <<
"GetFeature rpc failed." << std::endl;
197 if (!feature->has_location()) {
198 std::cout <<
"Server returns incomplete feature." << std::endl;
201 if (feature->name().empty()) {
202 std::cout <<
"Found no feature at "
204 << feature->location().longitude() /
kCoordFactor_ << std::endl;
206 std::cout <<
"Found feature called " << feature->name() <<
" at "
208 << feature->location().longitude() /
kCoordFactor_ << std::endl;
214 std::unique_ptr<RouteGuide::Stub>
stub_;
218 int main(
int argc,
char** argv) {
226 std::cout <<
"-------------- GetFeature --------------" << std::endl;
228 std::cout <<
"-------------- ListFeatures --------------" << std::endl;
230 std::cout <<
"-------------- RecordRoute --------------" << std::endl;
232 std::cout <<
"-------------- RouteChat --------------" << std::endl;