RDFS
The Rice Comp413 2017 class' continuation on the work of the 2016 RDFS.
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
web_rdfs_server.h
1 // Copyright 2017 Rice University, COMP 413 2017
2 
3 #ifndef WEB_RDFS_INCLUDE_WEB_RDFS_SERVER_H_
4 #define WEB_RDFS_INCLUDE_WEB_RDFS_SERVER_H_
5 
6 #include "server_https.h"
7 #include "zk_nn_client.h"
8 #include <google/protobuf/extension_set.h>
9 #include <google/protobuf/generated_enum_reflection.h>
10 #include <google/protobuf/unknown_field_set.h>
11 #include <google/protobuf/metadata.h>
12 #include <google/protobuf/message.h>
13 #include <google/protobuf/repeated_field.h>
14 #include <google/protobuf/arena.h>
15 #include <google/protobuf/arenastring.h>
16 #include <google/protobuf/generated_message_util.h>
17 #include "ClientNamenodeProtocol.pb.h"
18 #include "hdfs.pb.h"
19 
20 // Standard HTTP verbs used when registering WebRDFS handlers.
21 #define HTTP_GET "GET"
22 #define HTTP_POST "POST"
23 #define HTTP_PUT "PUT"
24 #define HTTP_DELETE "DELETE"
25 
26 // Fully qualified path to certificate and private key used for SSL.
27 #define SERVER_CERTIFICATE_PATH "/home/vagrant/rdfs/config/keys/server.crt"
28 #define SERVER_KEY_PATH "/home/vagrant/rdfs/config/keys/server.key"
29 
31 
32 // the .proto file implementation's namespace, used for messages
74 
76  public:
82  explicit WebRDFSServer(int16_t port) :
83  server(SERVER_CERTIFICATE_PATH, SERVER_KEY_PATH) {
84  server.config.port = port;
85  }
86 
90  void start();
91 
92  private:
96  HttpsServer server;
97 
105  void register_handler(
106  std::string pattern,
107  const char verb[],
108  std::function<void(
109  std::shared_ptr<HttpsServer::Response> response,
110  std::shared_ptr<HttpsServer::Request> request)> handler);
111 };
112 
113 #endif // WEB_RDFS_INCLUDE_WEB_RDFS_SERVER_H_
Definition: ClientNamenodeProtocol.pb.h:4767
Definition: ClientNamenodeProtocol.pb.h:4337
Definition: ClientNamenodeProtocol.pb.h:4143
Definition: ClientNamenodeProtocol.pb.h:593
Definition: ClientNamenodeProtocol.pb.h:415
Definition: ClientNamenodeProtocol.pb.h:1333
Definition: ClientNamenodeProtocol.pb.h:2128
Definition: ClientNamenodeProtocol.pb.h:5364
Definition: web_rdfs_server.h:75
Definition: ClientNamenodeProtocol.pb.h:8436
Definition: ClientNamenodeProtocol.pb.h:1917
Definition: ClientNamenodeProtocol.pb.h:3391
Definition: ClientNamenodeProtocol.pb.h:5266
Definition: ClientNamenodeProtocol.pb.h:5563
Definition: ClientNamenodeProtocol.pb.h:11431
Definition: ClientNamenodeProtocol.pb.h:510
Definition: ClientNamenodeProtocol.pb.h:2000
Definition: ClientNamenodeProtocol.pb.h:2432
Definition: ClientNamenodeProtocol.pb.h:2211
Definition: ClientNamenodeProtocol.pb.h:1804
Definition: ClientNamenodeProtocol.pb.h:4017
Definition: ClientNamenodeProtocol.pb.h:2349
Definition: encryption.pb.h:592
Definition: ClientNamenodeProtocol.pb.h:294
Definition: ClientNamenodeProtocol.pb.h:4226
Definition: ClientNamenodeProtocol.pb.h:2600
void start()
Definition: web_rdfs_server.cc:7
Definition: ClientNamenodeProtocol.pb.h:3924
Definition: ClientNamenodeProtocol.pb.h:8338
Definition: encryption.pb.h:690
Definition: ClientNamenodeProtocol.pb.h:5447
Definition: ClientNamenodeProtocol.pb.h:989
Config config
Set before calling start().
Definition: server_http.h:304
Definition: ClientNamenodeProtocol.pb.h:3119
Definition: hdfs.pb.h:4181
Definition: ClientNamenodeProtocol.pb.h:11333
Definition: ClientNamenodeProtocol.pb.h:2981
Definition: ClientNamenodeProtocol.pb.h:4553
Definition: ClientNamenodeProtocol.pb.h:894
Definition: ClientNamenodeProtocol.pb.h:4646
Definition: ClientNamenodeProtocol.pb.h:688
Definition: ClientNamenodeProtocol.pb.h:3808
Definition: ClientNamenodeProtocol.pb.h:4430
Definition: ClientNamenodeProtocol.pb.h:1222
WebRDFSServer(int16_t port)
Definition: web_rdfs_server.h:82