Added 'WebSocket'.

This is just an abstract class which is inherited by fr::HttpSocket<T>, to allow different web socket types to be stored in a generic container.
This commit is contained in:
Fred Nicolson 2017-06-02 16:38:06 +01:00
parent eb136c71f9
commit 71874837a0
3 changed files with 31 additions and 2 deletions

View File

@ -29,7 +29,7 @@ endif()
set( INCLUDE_PATH "${PROJECT_SOURCE_DIR}/include" )
set( SOURCE_PATH "${PROJECT_SOURCE_DIR}/src" )
set(SOURCE_FILES main.cpp src/TcpSocket.cpp include/frnetlib/TcpSocket.h src/TcpListener.cpp include/frnetlib/TcpListener.h src/Socket.cpp include/frnetlib/Socket.h src/Packet.cpp include/frnetlib/Packet.h include/frnetlib/NetworkEncoding.h src/SocketSelector.cpp include/frnetlib/SocketSelector.h src/HttpSocket.cpp include/frnetlib/HttpSocket.h src/HttpRequest.cpp include/frnetlib/HttpRequest.h src/HttpResponse.cpp include/frnetlib/HttpResponse.h src/Http.cpp include/frnetlib/Http.h src/SSLSocket.cpp include/frnetlib/SSLSocket.h src/SSLListener.cpp include/frnetlib/SSLListener.h include/frnetlib/SSLContext.h src/SocketReactor.cpp include/frnetlib/SocketReactor.h include/frnetlib/Packetable.h include/frnetlib/Listener.h src/URL.cpp include/frnetlib/URL.h)
set(SOURCE_FILES main.cpp src/TcpSocket.cpp include/frnetlib/TcpSocket.h src/TcpListener.cpp include/frnetlib/TcpListener.h src/Socket.cpp include/frnetlib/Socket.h src/Packet.cpp include/frnetlib/Packet.h include/frnetlib/NetworkEncoding.h src/SocketSelector.cpp include/frnetlib/SocketSelector.h src/HttpSocket.cpp include/frnetlib/HttpSocket.h src/HttpRequest.cpp include/frnetlib/HttpRequest.h src/HttpResponse.cpp include/frnetlib/HttpResponse.h src/Http.cpp include/frnetlib/Http.h src/SSLSocket.cpp include/frnetlib/SSLSocket.h src/SSLListener.cpp include/frnetlib/SSLListener.h include/frnetlib/SSLContext.h src/SocketReactor.cpp include/frnetlib/SocketReactor.h include/frnetlib/Packetable.h include/frnetlib/Listener.h src/URL.cpp include/frnetlib/URL.h include/frnetlib/WebSocket.h)
include_directories(include)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")

View File

@ -7,11 +7,12 @@
#include "Http.h"
#include "Socket.h"
#include "WebSocket.h"
namespace fr
{
template<class SocketType>
class HttpSocket : public SocketType
class HttpSocket : public SocketType, public WebSocket
{
public:
HttpSocket()

View File

@ -0,0 +1,28 @@
//
// Created by fred.nicolson on 02/06/17.
//
#ifndef FRNETLIB_WEBSOCKET_H
#define FRNETLIB_WEBSOCKET_H
#include "Socket.h"
#include "Http.h"
namespace fr
{
/*!
* fr::HttpSocket inherits this class. It's sole purpose is
* to allow you to store fr::HttpSocket<T> types in a generic
* container.
*/
class WebSocket
{
public:
virtual ~WebSocket()=default;
virtual Socket::Status receive(Http &request) = 0;
virtual Socket::Status send(const Http &request) = 0;
};
}
#endif //FRNETLIB_WEBSOCKET_H