DCSModulesAPI  1.0.0
DCS sub project containing all the control modules as libraries.
Classes | Namespaces | Macros | Functions | Variables
internal.h File Reference
#include "../../DCS_Utils/include/DCS_ModuleUtils.h"
#include "../../DCS_Core/include/DCS_ModuleCore.h"
#include "DCS_ModuleNetwork.h"
#include "../config/registry.h"
#include <WinSock2.h>
#include <ws2tcpip.h>
#include <atomic>
#include <queue>

Go to the source code of this file.

Classes

struct  DCS::Network::WindowsSocketInformation
 
struct  DCS::Network::Message::DefaultMessage
 

Namespaces

 DCS::Network
 Network control using sockets.
 
 DCS::Network::Message
 Handles default messaging via a simple fixed protocol.
 

Macros

#define _WINSOCK_DEPRECATED_NO_WARNINGS
 
#define _GET_F_NAME()   __FUNCTION__
 
#define GET_F_NAME()   _GET_F_NAME()
 
#define DCS_EMIT_NAMED_EVT(name, data, size)   DCS::Network::Message::EmitEvent(name, data, size)
 
#define DCS_EMIT_EVT(data, size)   DCS::Network::Message::EmitEvent(DCS::Registry::GetEvent(GET_F_NAME()), data, size)
 
#define MESSAGE_XTRA_SPACE   9
 

Functions

DCS_INTERNAL_TEST WSADATA DCS::Network::InitWinSock ()
 
DCS_INTERNAL_TEST void DCS::Network::CleanupWinSock ()
 
DCS_INTERNAL_TEST SOCKET DCS::Network::CreateServerSocket (i32 listen_port)
 
DCS_INTERNAL_TEST SOCKET DCS::Network::CreateClientSocket (const char *host, i32 port)
 
DCS_INTERNAL_TEST void DCS::Network::ServerListen (SOCKET server)
 
DCS_INTERNAL_TEST SOCKET DCS::Network::ServerAcceptConnection (SOCKET server)
 
DCS_INTERNAL_TEST void DCS::Network::CloseSocketConnection (SOCKET client)
 
DCS_INTERNAL_TEST bool DCS::Network::ValidateSocket (SOCKET s)
 
DCS_INTERNAL_TEST i32 DCS::Network::ReceiveData (SOCKET client, unsigned char *buffer, i32 buff_len)
 
DCS_INTERNAL_TEST i32 DCS::Network::SendData (SOCKET client, const unsigned char *buffer, i32 buff_len)
 
DCS_INTERNAL_TEST i32 DCS::Network::SendPriorityData (SOCKET client, const unsigned char *buffer, i32 buff_len)
 
DCS_INTERNAL_TEST void DCS::Network::GetSocketIpAddress (SOCKET s, char *buffer)
 
DCS_INTERNAL_TEST Registry::SVReturn DCS::Network::Message::WaitForId (u64 id)
 
DCS_INTERNAL_TEST void DCS::Network::Message::SetMsgIdCondition (DefaultMessage &msg)
 
DCS_INTERNAL_TEST void DCS::Network::Message::NotifyPromise (DefaultMessage &msg)
 
DCS_INTERNAL_TEST DefaultMessage DCS::Network::Message::Alloc (i32 size)
 
DCS_INTERNAL_TEST void DCS::Network::Message::SetCopyIdAndCode (DefaultMessage &msg, u8 *data)
 
DCS_INTERNAL_TEST void DCS::Network::Message::SetCopyId (DefaultMessage &msg, u8 opcode, u64 id, u8 *data)
 
DCS_INTERNAL_TEST void DCS::Network::Message::SetNew (DefaultMessage &msg, u8 opcode, u8 *data)
 
DCS_INTERNAL_TEST DefaultMessage DCS::Network::Message::Copy (DefaultMessage &msg)
 
DCS_INTERNAL_TEST void DCS::Network::Message::Delete (DefaultMessage &msg)
 
DCS_INTERNAL_TEST void DCS::Network::Message::ScheduleTransmission (DefaultMessage msg)
 
DCS_INTERNAL_TEST void DCS::Network::Message::EmitEvent (u8 EVT_ID, u8 *evtData, i32 size)
 

Variables

std::mutex DCS::Network::Message::message_m
 
std::condition_variable DCS::Network::Message::lsync
 
DefaultMessage DCS::Network::Message::lmessage
 
 NO_OP = 0
 Ping the server only.
 
 SYNC_REQUEST = 2
 Request a synchronous function call to the server, waiting for the result.
 
 ASYNC_REQUEST = 3
 Request an asynchronous function call to the server.
 
 SYNC_RESPONSE = 5
 Send back a sync response to the client.
 
 ASYNC_RESPONSE = 6
 Send back an async response to the client.
 
 EVT_SUB = 7
 Subscribe to a server-side event.
 
 EVT_RESPONSE = 8
 Send event response to the client.
 
 EVT_UNSUB = 9
 Unsubscribe from a previously subscribed event.
 
 OP_ERROR
 Send an error to the client/server.
 
 CON_VALID
 Server connection validity message.