diff --git a/CMakeLists.txt b/CMakeLists.txt index 25dd940..2665868 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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") diff --git a/include/frnetlib/HttpSocket.h b/include/frnetlib/HttpSocket.h index 05bf08f..5a6a051 100644 --- a/include/frnetlib/HttpSocket.h +++ b/include/frnetlib/HttpSocket.h @@ -7,11 +7,12 @@ #include "Http.h" #include "Socket.h" +#include "WebSocket.h" namespace fr { template - class HttpSocket : public SocketType + class HttpSocket : public SocketType, public WebSocket { public: HttpSocket() diff --git a/include/frnetlib/WebSocket.h b/include/frnetlib/WebSocket.h new file mode 100644 index 0000000..677c9b3 --- /dev/null +++ b/include/frnetlib/WebSocket.h @@ -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 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