aboutsummaryrefslogtreecommitdiffhomepage
path: root/cpp/route_guide/route_guide_server.cc
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/route_guide/route_guide_server.cc
parentea33d60f71980f53e20c245768efe50683170e24 (diff)
clean up a bit
Diffstat (limited to 'cpp/route_guide/route_guide_server.cc')
-rw-r--r--cpp/route_guide/route_guide_server.cc43
1 files changed, 6 insertions, 37 deletions
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;