3 #if defined(_WIN32) && defined(_MSC_VER)
10 #include <unordered_map>
23 using std::unique_ptr;
26 using std::unordered_map;
56 if (retries == 0)
return 0L;
Base exception class for network client exceptions.
void cleanUpSafeMessages()
Clean up safe messages.
static const int MESSAGEACK_RESENDTIMES_TRIES
virtual void run()
Run thread program.
unordered_map< uint32_t, Message * > MessageMapAck
MessageQueue messageQueue
MessageMapSafe messageMapSafe
MessageMapAck messageMapAck
static uint64_t getRetryTime(const uint8_t retries)
Get retry time for given retry count.
void processAckReceived(const uint32_t messageId)
Processes ack reveived.
queue< UDPClientMessage * > RecvMessageQueue
static const uint64_t MESSAGEACK_KEEPTIME
void processAckMessages()
Process ack messages.
queue< Message * > MessageQueue
void setClientKey(const string &clientKey)
Set client key.
static const uint64_t MESSAGESSAFE_KEEPTIME
const UDPClient_Statistics getStatistics()
const string & getClientKey()
static const int MESSAGEQUEUE_SEND_BATCH_SIZE
unique_ptr< UDPSocket > socket
unordered_map< uint32_t, SafeMessage * > MessageMapSafe
void sendMessage(UDPClientMessage *clientMessage, bool safe)
Pushes a message to be send, takes over ownership of message.
const unsigned int getPort()
UDPClientMessage * createMessage(const UDPPacket *packet)
Create message.
Mutex recvMessageQueueMutex
STATIC_DLL_IMPEXT static const uint64_t MESSAGEACK_RESENDTIMES[MESSAGEACK_RESENDTIMES_TRIES]
Mutex messageMapSafeMutex
bool processSafeMessage(UDPClientMessage *clientMessage)
Returns if a message should be processed or already have been processed.
UDPClient(const string &ip, const uint16_t port)
Public constructor.
UDPClientMessage * receiveMessage()
Receive message.
UDPClient_Statistics statistics
RecvMessageQueue recvMessageQueue
Interface to kernel event mechanismns.
Class representing a UDP socket.
#define STATIC_DLL_IMPEXT
#define FORBID_CLASS_COPY(CLASS)