Stardew Engine
Loading...
Searching...
No Matches
Network.c File Reference
#include "Network.h"
#include "netcode.h"
#include "main.h"
#include "Thread.h"
#include "Log.h"
#include <stdbool.h>
#include <inttypes.h>
#include <string.h>
#include "RawNetMessage.h"
#include "ANSIColourCodes.h"
#include "ThreadSafeQueue.h"
#include "ObjectPool.h"
#include "DynArray.h"
#include "SharedPtr.h"
#include "AssertLib.h"
#include "FileHelpers.h"
#include "cJSON.h"
Include dependency graph for Network.c:

Data Structures

struct  NetworkThreadQueues
 
struct  FragmentedMessageReciever
 
struct  GameClient
 

Macros

#define RESEND_IF_UNACKED_THRESHOLD   (100.0 / 1000.0)
 
#define TEST_PROTOCOL_ID   0x1122334455667788
 
#define GAME_PROTOCOL_ID   TEST_PROTOCOL_ID
 
#define CONNECT_TOKEN_EXPIRY   30
 
#define CONNECT_TOKEN_TIMEOUT   5
 
#define GAME_MAX_CLIENTS   3
 
#define RECENTLY_ACKED_PACKETS_BUF_SIZE   64
 

Typedefs

typedef HGeneric HReliableTracker
 
typedef u8 *(* RecievePacketFn) (void *serverOrClient, int clientIndex, int *bytesRecieved, uint64_t *packetSequence)
 
typedef void(* SendPacketFn) (void *serverOrClient, int clientIndex, u8 *packetData, int packetSize)
 
typedef void(* FreePacketFn) (void *serverOrClient, void *packet)
 

Functions

int clamp (int i, int c)
 
 DECLARE_THREAD_PROC (ClientThread, arg)
 
 DECLARE_THREAD_PROC (ClientServerThread, arg)
 
void WrapAroundHandlerBase (void *pItemToBeLost, const char *message)
 
void OnConnectionEventTSQueueWrapAround (void *pItemToBeLost)
 
void OnTXTSQueueWrapAround (void *pItemToBeLost)
 
void OnRXTSQueueWrapAround (void *pItemToBeLost)
 
void NW_Init ()
 
bool NW_DequeueData (struct NetworkQueueItem *pOut)
 
bool NW_DequeueConnectionEvent (struct NetworkConnectionEvent *pOut)
 
void NW_EnqueueData (struct NetworkQueueItem *pIn)
 
enum GameRole NW_GetRole ()
 

Variables

CrossPlatformThread gNetworkThread
 

Macro Definition Documentation

◆ CONNECT_TOKEN_EXPIRY

#define CONNECT_TOKEN_EXPIRY   30

◆ CONNECT_TOKEN_TIMEOUT

#define CONNECT_TOKEN_TIMEOUT   5

◆ GAME_MAX_CLIENTS

#define GAME_MAX_CLIENTS   3

◆ GAME_PROTOCOL_ID

#define GAME_PROTOCOL_ID   TEST_PROTOCOL_ID

◆ RECENTLY_ACKED_PACKETS_BUF_SIZE

#define RECENTLY_ACKED_PACKETS_BUF_SIZE   64

◆ RESEND_IF_UNACKED_THRESHOLD

#define RESEND_IF_UNACKED_THRESHOLD   (100.0 / 1000.0)

◆ TEST_PROTOCOL_ID

#define TEST_PROTOCOL_ID   0x1122334455667788

Typedef Documentation

◆ FreePacketFn

typedef void(* FreePacketFn) (void *serverOrClient, void *packet)

◆ HReliableTracker

◆ RecievePacketFn

typedef u8 *(* RecievePacketFn) (void *serverOrClient, int clientIndex, int *bytesRecieved, uint64_t *packetSequence)

◆ SendPacketFn

typedef void(* SendPacketFn) (void *serverOrClient, int clientIndex, u8 *packetData, int packetSize)

Function Documentation

◆ clamp()

int clamp ( int  i,
int  c 
)

◆ DECLARE_THREAD_PROC() [1/2]

DECLARE_THREAD_PROC ( ClientServerThread  ,
arg   
)

◆ DECLARE_THREAD_PROC() [2/2]

DECLARE_THREAD_PROC ( ClientThread  ,
arg   
)

◆ NW_DequeueConnectionEvent()

bool NW_DequeueConnectionEvent ( struct NetworkConnectionEvent pOut)

◆ NW_DequeueData()

bool NW_DequeueData ( struct NetworkQueueItem pOut)

◆ NW_EnqueueData()

void NW_EnqueueData ( struct NetworkQueueItem pIn)

◆ NW_GetRole()

enum GameRole NW_GetRole ( )

◆ NW_Init()

void NW_Init ( )

◆ OnConnectionEventTSQueueWrapAround()

void OnConnectionEventTSQueueWrapAround ( void *  pItemToBeLost)

◆ OnRXTSQueueWrapAround()

void OnRXTSQueueWrapAround ( void *  pItemToBeLost)

◆ OnTXTSQueueWrapAround()

void OnTXTSQueueWrapAround ( void *  pItemToBeLost)

◆ WrapAroundHandlerBase()

void WrapAroundHandlerBase ( void *  pItemToBeLost,
const char *  message 
)

Variable Documentation

◆ gNetworkThread

CrossPlatformThread gNetworkThread