SearchSECODatabaseAPI
RequestHandler.h
1/*
2This program has been developed by students from the bachelor Computer Science at
3Utrecht University within the Software Project course.
4© Copyright Utrecht University (Department of Information and Computing Sciences)
5*/
6
7#pragma once
8#include "DatabaseHandler.h"
9#include "JobRequestHandler.h"
10#include "DatabaseRequestHandler.h"
11#include "RAFTConsensus.h"
12#include "DatabaseConnection.h"
13#include "Statistics.h"
14
15#include <boost/shared_ptr.hpp>
16
17class TcpConnection;
18
22enum ERequestType
23{
24 eUpload,
25 eCheck,
26 eCheckUpload,
27 eConnect,
28 eGetIPs,
29 eUploadJob,
30 eUploadCrawlData,
31 eGetTopJob,
32 eUpdateJob,
33 eFinishJob,
34 eExtractProjects,
35 eGetAuthor,
36 eGetMethodByAuthor,
37 eGetPrevProjectsRequest,
38 eUnknown
39};
40
41
43{
44public:
48 virtual void initialize(DatabaseHandler *databaseHandler, DatabaseConnection *databaseConnection,
49 RAFTConsensus *raft, Statistics *stats, std::string ip = IP, int port = DBPORT);
50
64 virtual std::string handleRequest(std::string requestType, std::string client, std::string request,
65 boost::shared_ptr<TcpConnection> connection);
66
67 JobRequestHandler *getJobRequestHandler()
68 {
69 return jrh;
70 }
71
72private:
79 std::string handleUnknownRequest();
80
87 std::string handleNotImplementedRequest();
88
98 ERequestType getERequestType(std::string requestType);
99
102};
Handles interaction with database when dealing with job requests.
Definition: DatabaseConnection.h:25
Handles interaction with database.
Definition: DatabaseHandler.h:23
Handles requests towards database.
Definition: DatabaseRequestHandler.h:29
Definition: JobRequestHandler.h:22
Definition: RAFTConsensus.h:41
Definition: RequestHandler.h:43
virtual std::string handleRequest(std::string requestType, std::string client, std::string request, boost::shared_ptr< TcpConnection > connection)
Handles all requests send to the database.
Definition: RequestHandler.cpp:18
virtual void initialize(DatabaseHandler *databaseHandler, DatabaseConnection *databaseConnection, RAFTConsensus *raft, Statistics *stats, std::string ip=IP, int port=DBPORT)
Readies the request handler for later usage.
Definition: RequestHandler.cpp:10
Stores the Prometheus statistics variables.
Definition: Statistics.h:35
Definition: ConnectionHandler.h:56