12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef CORE_NETWORK_H
- #define CORE_NETWORK_H
- #include "core/Buffer.h"
- #include "core/Types.h"
- typedef enum {
- CORE_RELIABLE,
- CORE_SEQUENCED,
- CORE_UNSEQUENCED
- } CorePacketSendMode;
- typedef struct {
- const char* data;
- size_t size;
- size_t index;
- } CoreInPacket;
- void coreInitInPacket(CoreInPacket* in, const void* data, size_t n);
- bool coreReadInPacketU8(CoreInPacket* in, u8* u);
- bool coreReadInPacketU16(CoreInPacket* in, u16* u);
- bool coreReadInPacketU32(CoreInPacket* in, u32* u);
- bool coreReadInPacketI8(CoreInPacket* in, i8* i);
- bool coreReadInPacketI16(CoreInPacket* in, i16* i);
- bool coreReadInPacketI32(CoreInPacket* in, i32* i);
- bool coreReadInPacketFloat(CoreInPacket* in, float* f);
- size_t coreReadInPacketString(CoreInPacket* in, char* buffer, size_t n);
- bool coreReadInPacket(CoreInPacket* in, void* buffer, size_t n);
- typedef struct {
- CoreBuffer data;
- } CoreOutPacket;
- void coreInitOutPacket(CoreOutPacket* out);
- void coreDestroyOutPacket(CoreOutPacket* out);
- void coreWriteOutPacketU8(CoreOutPacket* out, u8 u);
- void coreWriteOutPacketU16(CoreOutPacket* out, u16 u);
- void coreWriteOutPacketU32(CoreOutPacket* out, u32 u);
- void coreWriteOutPacketI8(CoreOutPacket* out, i8 i);
- void coreWriteOutPacketI16(CoreOutPacket* out, i16 i);
- void coreWriteOutPacketI32(CoreOutPacket* out, i32 i);
- void coreWriteOutPacketFloat(CoreOutPacket* out, float f);
- void coreWriteOutPacketString(CoreOutPacket* out, const char* buffer);
- void coreWriteOutPacket(CoreOutPacket* out, const void* buffer, size_t n);
- typedef u16 CorePort;
- typedef void (*CoreOnServerConnect)(void);
- typedef void (*CoreOnServerDisconnect)(void);
- typedef void (*CoreOnServerPacket)(CoreInPacket*);
- bool coreStartClient(void);
- void coreStopClient(void);
- bool coreConnectClient(const char* server, CorePort port, int timeoutTicks);
- void coreSetClientTimeout(u32 timeout, u32 timeoutMin, u32 timeoutMax);
- void coreDisconnectClient(int timeoutTicks);
- void coreSendClientPacket(const CoreOutPacket* p, CorePacketSendMode mode);
- void coreTickClient(void);
- void coreSetClientConnectHandler(CoreOnServerConnect oc);
- void coreSetClientDisconnectHandler(CoreOnServerDisconnect od);
- void coreSetClientPacketHandler(CoreOnServerPacket op);
- void coreResetClientHandler(void);
- bool coreIsClientConnecting(void);
- bool coreIsClientConnected(void);
- typedef int CoreClient;
- typedef void (*CoreOnClientConnect)(CoreClient);
- typedef void (*CoreOnClientDisconnect)(CoreClient);
- typedef void (*CoreOnClientPacket)(CoreClient, CoreInPacket*);
- bool coreStartServer(CorePort port, size_t maxClients);
- void coreStopServer(void);
- void coreTickServer(void);
- void coreSendServerPacketBroadcast(const CoreOutPacket* p,
- CorePacketSendMode mode);
- void coreSendServerPacket(CoreClient client, const CoreOutPacket* p,
- CorePacketSendMode mode);
- void coreServerTimeout(CoreClient client, u32 timeout, u32 timeoutMin,
- u32 timeoutMax);
- void coreDisconnectServerClient(CoreClient client);
- void coreSetServerConnectHandler(CoreOnClientConnect oc);
- void coreSetServerDisconnectHandler(CoreOnClientDisconnect od);
- void coreSetServerPacketHandler(CoreOnClientPacket op);
- void coreResetServerHandler(void);
- #endif
|