123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- #ifndef CORE_NETWORK_H
- #define CORE_NETWORK_H
- #include <core/Buffer.h>
- #include <core/Types.h>
- typedef enum {
- CORE_PACKET_RELIABLE,
- CORE_PACKET_SEQUENCED,
- CORE_PACKET_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 coreSetServerTimeout(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);
- #ifdef IMPORT_CORE
- #define PacketSendMode CorePacketSendMode
- #define PACKET_RELIABLE CORE_PACKET_RELIABLE
- #define PACKET_SEQUENCED CORE_PACKET_SEQUENCED
- #define PACKET_UNSEQUENCED CORE_PACKET_UNSEQUENCED
- #define InPacket CoreInPacket
- #define initInPacket coreInitInPacket
- #define readInPacketU8 coreReadInPacketU8
- #define readInPacketU16 coreReadInPacketU16
- #define readInPacketU32 coreReadInPacketU32
- #define readInPacketI8 coreReadInPacketI8
- #define readInPacketI16 coreReadInPacketI16
- #define readInPacketI32 coreReadInPacketI32
- #define readInPacketFloat coreReadInPacketFloat
- #define readInPacketString coreReadInPacketString
- #define readInPacket coreReadInPacket
- #define OutPacket CoreOutPacket
- #define initOutPacket coreInitOutPacket
- #define destroyOutPacket coreDestroyOutPacket
- #define writeOutPacketU8 coreWriteOutPacketU8
- #define writeOutPacketU16 coreWriteOutPacketU16
- #define writeOutPacketU32 coreWriteOutPacketU32
- #define writeOutPacketI8 coreWriteOutPacketI8
- #define writeOutPacketI16 coreWriteOutPacketI16
- #define writeOutPacketI32 coreWriteOutPacketI32
- #define writeOutPacketFloat coreWriteOutPacketFloat
- #define writeOutPacketString coreWriteOutPacketString
- #define writeOutPacket coreWriteOutPacket
- #define Port CorePort
- #define OnServerConnect CoreOnServerConnect
- #define OnServerDisconnect CoreOnServerDisconnect
- #define OnServerPacket CoreOnServerPacket
- #define startClient coreStartClient
- #define stopClient coreStopClient
- #define connectClient coreConnectClient
- #define setClientTimeout coreSetClientTimeout
- #define disconnectClient coreDisconnectClient
- #define sendClientPacket coreSendClientPacket
- #define tickClient coreTickClient
- #define setClientConnectHandler coreSetClientConnectHandler
- #define setClientDisconnectHandler coreSetClientDisconnectHandler
- #define setClientPacketHandler coreSetClientPacketHandler
- #define resetClientHandler coreResetClientHandler
- #define isClientConnecting coreIsClientConnecting
- #define isClientConnected coreIsClientConnected
- #define Client CoreClient
- #define OnClientConnect CoreOnClientConnect
- #define OnClientDisconnect CoreOnClientDisconnect
- #define OnClientPacket CoreOnClientPacket
- #define startServer coreStartServer
- #define stopServer coreStopServer
- #define tickServer coreTickServer
- #define sendServerPacketBroadcast coreSendServerPacketBroadcast
- #define sendServerPacket coreSendServerPacket
- #define setServerTimeout coreSetServerTimeout
- #define disconnectServerClient coreDisconnectServerClient
- #define setServerConnectHandler coreSetServerConnectHandler
- #define setServerDisconnectHandler coreSetServerDisconnectHandler
- #define setServerPacketHandler coreSetServerPacketHandler
- #define resetServerHandler coreResetServerHandler
- #endif
- #endif
|