Add Windows support.
This commit is contained in:
parent
ee51f3ee09
commit
683ba5447f
37 changed files with 477 additions and 113 deletions
|
@ -1,14 +1,26 @@
|
|||
list(APPEND linux_INCLUDES
|
||||
sockets/UnixSocketInterface.cpp)
|
||||
|
||||
list(APPEND network_HEADERS
|
||||
NetworkManager.h
|
||||
sockets/Socket.h
|
||||
sockets/SocketInterface.h
|
||||
)
|
||||
|
||||
list(APPEND network_LIB_INCLUDES
|
||||
NetworkManager.cpp
|
||||
sockets/Socket.cpp
|
||||
sockets/UnixSocketInterface.cpp)
|
||||
sockets/SocketInterface.cpp
|
||||
)
|
||||
|
||||
add_library(network SHARED ${network_LIB_INCLUDES})
|
||||
add_library(network SHARED ${network_LIB_INCLUDES} ${network_HEADERS})
|
||||
|
||||
target_include_directories(network PUBLIC
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/sockets"
|
||||
"${PROJECT_SOURCE_DIR}/src/core/http"
|
||||
)
|
||||
|
||||
target_link_libraries(network PUBLIC core)
|
||||
set_target_properties( network PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON )
|
||||
target_link_libraries( network PUBLIC core)
|
||||
|
||||
set_property(TARGET network PROPERTY FOLDER src)
|
|
@ -1,8 +1,8 @@
|
|||
#include "NetworkManager.h"
|
||||
|
||||
NetworkManager::NetworkManager()
|
||||
: mActiveSockets(),
|
||||
mSocketInterface()
|
||||
: mActiveSockets(),
|
||||
mSocketInterface()
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -12,22 +12,22 @@ NetworkManager::~NetworkManager()
|
|||
|
||||
}
|
||||
|
||||
std::shared_ptr<NetworkManager> NetworkManager::Create()
|
||||
std::unique_ptr<NetworkManager> NetworkManager::Create()
|
||||
{
|
||||
return std::make_shared<NetworkManager>();
|
||||
return std::make_unique<NetworkManager>();
|
||||
}
|
||||
|
||||
void NetworkManager::Initialize()
|
||||
{
|
||||
mSocketInterface = UnixSocketInterface::Create();
|
||||
mSocketInterface = SocketInterface::Create();
|
||||
}
|
||||
|
||||
void NetworkManager::RunHttpServer()
|
||||
{
|
||||
auto socket = Socket::Create();
|
||||
mSocketInterface->CreateSocket(socket);
|
||||
mSocketInterface->Listen(socket);
|
||||
mSocketInterface->Run(socket);
|
||||
auto socket = Socket::Create();
|
||||
mSocketInterface->CreateSocket(socket);
|
||||
mSocketInterface->Listen(socket);
|
||||
mSocketInterface->Run(socket);
|
||||
}
|
||||
|
||||
void NetworkManager::ShutDown()
|
||||
|
|
|
@ -4,30 +4,30 @@
|
|||
#include <vector>
|
||||
|
||||
#include "Socket.h"
|
||||
#include "UnixSocketInterface.h"
|
||||
#include "SocketInterface.h"
|
||||
|
||||
class NetworkManager
|
||||
{
|
||||
std::vector<SocketPtr> mActiveSockets;
|
||||
UnixSocketInterfacePtr mSocketInterface;
|
||||
std::vector<SocketPtr> mActiveSockets;
|
||||
SocketInterfaceUPtr mSocketInterface;
|
||||
|
||||
public:
|
||||
|
||||
NetworkManager();
|
||||
NetworkManager();
|
||||
|
||||
~NetworkManager();
|
||||
~NetworkManager();
|
||||
|
||||
static std::shared_ptr<NetworkManager> Create();
|
||||
static std::unique_ptr<NetworkManager> Create();
|
||||
|
||||
void Initialize();
|
||||
void Initialize();
|
||||
|
||||
void OpenSocket(SocketPtr socket);
|
||||
void OpenSocket(SocketPtr socket);
|
||||
|
||||
void CloseSocket(SocketPtr socket);
|
||||
void CloseSocket(SocketPtr socket);
|
||||
|
||||
void RunHttpServer();
|
||||
void RunHttpServer();
|
||||
|
||||
void ShutDown();
|
||||
void ShutDown();
|
||||
};
|
||||
|
||||
using NetworkManagerPtr = std::shared_ptr<NetworkManager>;
|
||||
using NetworkManagerUPtr = std::unique_ptr<NetworkManager>;
|
||||
|
|
27
src/network/sockets/SocketInterface.cpp
Normal file
27
src/network/sockets/SocketInterface.cpp
Normal file
|
@ -0,0 +1,27 @@
|
|||
#include "SocketInterface.h"
|
||||
#include "Socket.h"
|
||||
|
||||
SocketInterface::SocketInterface()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
std::unique_ptr<SocketInterface> SocketInterface::Create()
|
||||
{
|
||||
return std::make_unique<SocketInterface>();
|
||||
}
|
||||
|
||||
void SocketInterface::CreateSocket(SocketPtr socket)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void SocketInterface::Listen(SocketPtr socket)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void SocketInterface::Run(SocketPtr socket)
|
||||
{
|
||||
|
||||
}
|
20
src/network/sockets/SocketInterface.h
Normal file
20
src/network/sockets/SocketInterface.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
#pragma
|
||||
|
||||
#include <memory>
|
||||
|
||||
class Socket;
|
||||
using SocketPtr = std::shared_ptr<Socket>;
|
||||
|
||||
class SocketInterface
|
||||
{
|
||||
public:
|
||||
|
||||
SocketInterface();
|
||||
|
||||
static std::unique_ptr<SocketInterface> Create();
|
||||
void CreateSocket(SocketPtr socket);
|
||||
void Listen(SocketPtr socket);
|
||||
void Run(SocketPtr socket);
|
||||
};
|
||||
|
||||
using SocketInterfaceUPtr = std::unique_ptr<SocketInterface>;
|
Loading…
Add table
Add a link
Reference in a new issue