rcpp_framework/core/http_server.h

49 lines
1.2 KiB
C
Raw Normal View History

2020-11-25 00:20:41 +01:00
#ifndef HTTP_SERVER_H
#define HTTP_SERVER_H
#include <condition_variable>
#include <iostream>
#include <map>
#include <mutex>
#include <string>
2020-11-25 00:20:41 +01:00
#include <brynet/base/AppStatus.hpp>
#include <brynet/net/http/HttpFormat.hpp>
#include <brynet/net/http/HttpService.hpp>
#include <brynet/net/http/WebSocketFormat.hpp>
#include <brynet/net/wrapper/HttpServiceBuilder.hpp>
#include <brynet/net/wrapper/ServiceBuilder.hpp>
using namespace brynet;
using namespace brynet::net;
using namespace brynet::net::http;
2020-11-25 00:20:41 +01:00
class Request;
class HTTPServer {
public:
int port;
int threads;
std::shared_ptr<TcpService> service;
wrapper::HttpListenerBuilder *listenBuilder;
2020-11-25 00:20:41 +01:00
void http_callback_handler(Request *response);
2020-11-25 00:20:41 +01:00
void httpEnterCallbackDefault(const HTTPParser &httpParser, const HttpSession::Ptr &session);
void wsEnterCallbackDefault(const HttpSession::Ptr &httpSession, WebSocketFormat::WebSocketFrameType opcode, const std::string &payload);
void closedCallbackDefault(const HttpSession::Ptr &session);
2020-11-25 00:20:41 +01:00
virtual void configure();
virtual void initialize();
void main_loop();
HTTPServer();
virtual ~HTTPServer();
protected:
std::map<HttpSession *, Request *> _request_map;
std::mutex _request_map_mutex;
2020-11-25 00:20:41 +01:00
};
#endif