#pragma once #include "ehs/Str.h" #ifndef EHS_IPV4_HEADER #define EHS_IPV4_HEADER 60 #include #endif #ifndef EHS_IPV6_HEADER #define EHS_IPV6_HEADER 40 #endif #ifndef EHS_UDP_HEADER #define EHS_UDP_HEADER 8 #endif #ifndef EHS_IPV4_UDP_PAYLOAD #define EHS_IPV4_UDP_PAYLOAD (EHS_UINT_16_MAX - EHS_IPV4_HEADER - EHS_UDP_HEADER) #endif #ifndef EHS_IPV6_UDP_PAYLOAD #define EHS_IPV6_UDP_PAYLOAD (EHS_UINT_16_MAX - EHS_IPV6_HEADER - EHS_UDP_HEADER) #endif namespace ehs { enum class IP { V4, V6 }; enum class ContentType { APP_MULTIPART_FORMDATA, APP_FORMURLENCODED, APP_JAVASCRIPT, APP_JSON, APP_XML, TEXT_PLAIN, TEXT_HTML, TEXT_XML, NONE }; struct Endpoint { IP version = IP::V6; Str_8 address; UInt_16 port = 0; }; #if defined(EHS_OS_WINDOWS) typedef UInt_64 Socket; #define EHS_INVALID_SOCKET EHS_UINT_64_MAX #elif defined(EHS_OS_LINUX) typedef SInt_32 Socket; #define EHS_INVALID_SOCKET (SInt_32)0xffffffff #endif }