aboutsummaryrefslogtreecommitdiffhomepage
path: root/cpp
diff options
context:
space:
mode:
authorGravatar Yang Gao <yangg@google.com>2015-02-23 14:16:01 -0800
committerGravatar Yang Gao <yangg@google.com>2015-02-23 14:16:01 -0800
commit178fdf82e1538d3c2c34181cc66d7cb25d29096e (patch)
tree6cd7e5bb44191f7fd0b1d52a9a66b99c7a36d4d0 /cpp
parentea33d60f71980f53e20c245768efe50683170e24 (diff)
clean up a bit
Diffstat (limited to 'cpp')
-rw-r--r--cpp/route_guide/Makefile4
-rw-r--r--cpp/route_guide/helper.cc73
-rw-r--r--cpp/route_guide/helper.h50
-rw-r--r--cpp/route_guide/route_guide_client.cc40
-rw-r--r--cpp/route_guide/route_guide_server.cc43
5 files changed, 136 insertions, 74 deletions
diff --git a/cpp/route_guide/Makefile b/cpp/route_guide/Makefile
index fae9a9d284..131956296c 100644
--- a/cpp/route_guide/Makefile
+++ b/cpp/route_guide/Makefile
@@ -43,10 +43,10 @@ vpath %.proto $(PROTOS_PATH)
all: system-check route_guide_client route_guide_server
-route_guide_client: route_guide.pb.o route_guide_client.o
+route_guide_client: route_guide.pb.o route_guide_client.o helper.o
$(CXX) $^ $(LDFLAGS) -o $@
-route_guide_server: route_guide.pb.o route_guide_server.o
+route_guide_server: route_guide.pb.o route_guide_server.o helper.o
$(CXX) $^ $(LDFLAGS) -o $@
%.pb.cc: %.proto
diff --git a/cpp/route_guide/helper.cc b/cpp/route_guide/helper.cc
new file mode 100644
index 0000000000..a4be8bfc6c
--- /dev/null
+++ b/cpp/route_guide/helper.cc
@@ -0,0 +1,73 @@
+/*
+ *
+ * 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 <fstream>
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <vector>
+#include "route_guide.pb.h"
+
+namespace examples {
+
+std::string GetDbFileContent(int argc, char** argv) {
+ std::string db_path;
+ std::string arg_str("--db_path");
+ if (argc > 1) {
+ std::string argv_1 = argv[1];
+ size_t start_position = argv_1.find(arg_str);
+ if (start_position != std::string::npos) {
+ start_position += arg_str.size();
+ if (argv_1[start_position] == ' ' ||
+ argv_1[start_position] == '=') {
+ db_path = argv_1.substr(start_position + 1);
+ }
+ }
+ }
+ std::ifstream db_file(db_path);
+ if (!db_file.is_open()) {
+ std::cout << "Failed to open " << db_path << std::endl;
+ return "";
+ }
+ std::stringstream db;
+ db << db_file.rdbuf();
+ return db.str();
+}
+
+void ParseDb(const std::string& db, std::vector<Feature>* feature_list) {
+
+}
+
+
+} // namespace examples
+
diff --git a/cpp/route_guide/helper.h b/cpp/route_guide/helper.h
new file mode 100644
index 0000000000..65c93c1d34
--- /dev/null
+++ b/cpp/route_guide/helper.h
@@ -0,0 +1,50 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+#ifndef GRPC_COMMON_CPP_ROUTE_GUIDE_HELPER_H_
+#define GRPC_COMMON_CPP_ROUTE_GUIDE_HELPER_H_
+
+#include <string>
+#include <vector>
+
+namespace examples {
+class Feature;
+
+std::string GetDbFileContent(int argc, char** argv);
+
+void ParseDb(const std::string& db, std::vector<Feature>* feature_list);
+
+} // namespace examples
+
+#endif // GRPC_COMMON_CPP_ROUTE_GUIDE_HELPER_H_
+
diff --git a/cpp/route_guide/route_guide_client.cc b/cpp/route_guide/route_guide_client.cc
index 8b4a532327..fd3d98e30a 100644
--- a/cpp/route_guide/route_guide_client.cc
+++ b/cpp/route_guide/route_guide_client.cc
@@ -32,11 +32,9 @@
*/
#include <chrono>
-#include <fstream>
#include <iostream>
#include <memory>
#include <random>
-#include <sstream>
#include <string>
#include <thread>
@@ -47,6 +45,7 @@
#include <grpc++/create_channel.h>
#include <grpc++/status.h>
#include <grpc++/stream.h>
+#include "helper.h"
#include "route_guide.pb.h"
using grpc::ChannelArguments;
@@ -86,23 +85,6 @@ RouteNote MakeRouteNote(const std::string& message,
return n;
}
-bool ParseDb(const std::string& stream, std::vector<Feature>* feature_list) {
- // TODO
-}
-
-void FillFeatureList(const std::string& db_path, std::vector<Feature>* feature_list) {
- if (db_path.empty()) {
- return;
- }
- std::ifstream db_file(db_path);
- if (!db_file.is_open()) {
- std::cout << "Failed to open " << db_path << std::endl;
- }
- std::stringstream db;
- db << db_file.rdbuf();
- ParseDb(db.str(), feature_list);
-}
-
class RouteGuideClient {
public:
RouteGuideClient(std::shared_ptr<ChannelInterface> channel)
@@ -219,8 +201,8 @@ class RouteGuideClient {
void Shutdown() { stub_.reset(); }
- void FillFeatureList(const std::string& db_path) {
- ::FillFeatureList(db_path, &feature_list_);
+ void FillFeatureList(const std::string& db) {
+ examples::ParseDb(db, &feature_list_);
}
private:
@@ -258,20 +240,8 @@ int main(int argc, char** argv) {
RouteGuideClient guide(
grpc::CreateChannel("localhost:50051", ChannelArguments()));
- std::string db_path;
- std::string arg_str("--db_path");
- if (argc > 1) {
- std::string argv_1 = argv[1];
- size_t start_position = argv_1.find(arg_str);
- if (start_position != std::string::npos) {
- start_position += arg_str.size();
- if (argv_1[start_position] == ' ' ||
- argv_1[start_position] == '=') {
- db_path = argv_1.substr(start_position + 1);
- }
- }
- }
- guide.FillFeatureList(db_path);
+ std::string db = examples::GetDbFileContent(argc, argv);
+ guide.FillFeatureList(db);
guide.GetFeature();
guide.ListFeatures();
diff --git a/cpp/route_guide/route_guide_server.cc b/cpp/route_guide/route_guide_server.cc
index d4ecded69b..38cd64be94 100644
--- a/cpp/route_guide/route_guide_server.cc
+++ b/cpp/route_guide/route_guide_server.cc
@@ -34,10 +34,8 @@
#include <algorithm>
#include <chrono>
#include <cmath>
-#include <fstream>
#include <iostream>
#include <memory>
-#include <sstream>
#include <string>
#include <thread>
@@ -47,6 +45,7 @@
#include <grpc++/server_context.h>
#include <grpc++/status.h>
#include <grpc++/stream.h>
+#include "helper.h"
#include "route_guide.pb.h"
using grpc::Server;
@@ -64,18 +63,13 @@ using examples::RouteNote;
using examples::RouteGuide;
using std::chrono::system_clock;
-const float kCoordFactor = 10000000.0;
-
-bool ParseDb(const std::string& stream, std::vector<Feature>* feature_list) {
- // TODO
-}
float ConvertToRadians(float num) {
return num * 3.1415926 /180;
}
float GetDistance(const Point& start, const Point& end) {
-
+ const float kCoordFactor = 10000000.0;
float lat_1 = start.latitude() / kCoordFactor;
float lat_2 = end.latitude() / kCoordFactor;
float lon_1 = start.longitude() / kCoordFactor;
@@ -93,19 +87,6 @@ float GetDistance(const Point& start, const Point& end) {
return R * c;
}
-void FillFeatureList(const std::string& db_path, std::vector<Feature>* feature_list) {
- if (db_path.empty()) {
- return;
- }
- std::ifstream db_file(db_path);
- if (!db_file.is_open()) {
- std::cout << "Failed to open " << db_path << std::endl;
- }
- std::stringstream db;
- db << db_file.rdbuf();
- ParseDb(db.str(), feature_list);
-}
-
std::string GetFeatureName(const Point& point,
const std::vector<Feature>& feature_list) {
for (const Feature& f : feature_list) {
@@ -119,8 +100,8 @@ std::string GetFeatureName(const Point& point,
class RouteGuideImpl final : public RouteGuide::Service {
public:
- RouteGuideImpl(const std::string& db_path) {
- FillFeatureList(db_path, &feature_list_);
+ RouteGuideImpl(const std::string& db) {
+ examples::ParseDb(db, &feature_list_);
}
Status GetFeature(ServerContext* context, const Point* point,
@@ -218,20 +199,8 @@ void RunServer(const std::string& db_path) {
int main(int argc, char** argv) {
grpc_init();
- std::string db_path;
- std::string arg_str("--db_path");
- if (argc > 1) {
- std::string argv_1 = argv[1];
- size_t start_position = argv_1.find(arg_str);
- if (start_position != std::string::npos) {
- start_position += arg_str.size();
- if (argv_1[start_position] == ' ' ||
- argv_1[start_position] == '=') {
- db_path = argv_1.substr(start_position + 1);
- }
- }
- }
- RunServer(db_path);
+ std::string db = examples::GetDbFileContent(argc, argv);
+ RunServer(db);
grpc_shutdown();
return 0;