6#include "Containers/Queue.h"
56 , WaitTime(
FTimespan::FromMilliseconds(100))
58 check(Socket !=
nullptr);
71 if (Thread !=
nullptr)
112 if (!Stopping && SendQueue.
Enqueue(FPacket(Data, Recipient)))
169 WorkEvent->
Wait(WaitTime);
181 virtual void Exit()
override { }
204 Socket->
SendTo(Packet.Data->GetData(), Packet.Data->Num(), Sent, *Packet.Recipient.ToInternetAddr());
206 if (Sent != Packet.Data->Num())
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ SOCKTYPE_Datagram
Definition SocketTypes.h:37
static const uint64 GetPoolThreadMask()
Definition AndroidPlatformAffinity.h:38
virtual bool Wait(uint32 WaitTime, const bool bIgnoreThreadIdleStats=false)=0
Definition RunnableThread.h:20
virtual bool Kill(bool bShouldWait=true)=0
static CORE_API FRunnableThread * Create(class FRunnable *InRunnable, const TCHAR *ThreadName, uint32 InStackSize=0, EThreadPriority InThreadPri=TPri_Normal, uint64 InThreadAffinityMask=FPlatformAffinity::GetNoAffinityMask(), EThreadCreateFlags InCreateFlags=EThreadCreateFlags::None)
Definition ThreadingBase.cpp:862
Definition SingleThreadRunnable.h:12
virtual SOCKETS_API bool SendTo(const uint8 *Data, int32 Count, int32 &BytesSent, const FInternetAddr &Destination)
Definition Sockets.cpp:47
virtual bool Wait(ESocketWaitConditions::Type Condition, FTimespan WaitTime)=0
virtual bool SetSendBufferSize(int32 Size, int32 &NewSize)=0
ESocketType GetSocketType() const
Definition Sockets.h:458
Definition UdpSocketSender.h:24
virtual void Exit() override
Definition UdpSocketSender.h:181
uint32 GetThroughput() const
Definition UdpSocketSender.h:98
virtual bool Init() override
Definition UdpSocketSender.h:153
void SetWaitTime(const FTimespan &Timespan)
Definition UdpSocketSender.h:139
FUdpSocketSender(FSocket *InSocket, const TCHAR *ThreadDescription)
Definition UdpSocketSender.h:52
bool Send(const TSharedRef< TArray< uint8 >, ESPMode::ThreadSafe > &Data, const FIPv4Endpoint &Recipient)
Definition UdpSocketSender.h:110
virtual void Stop() override
Definition UdpSocketSender.h:175
uint32 GetSendRate() const
Definition UdpSocketSender.h:88
virtual void Tick() override
Definition UdpSocketSender.h:219
virtual uint32 Run() override
Definition UdpSocketSender.h:158
virtual FSingleThreadRunnable * GetSingleThreadInterface() override
Definition UdpSocketSender.h:148
virtual ~FUdpSocketSender()
Definition UdpSocketSender.h:69
bool Update(const FTimespan &SocketWaitTime)
Definition UdpSocketSender.h:191
void SetSendRate(uint32 Rate)
Definition UdpSocketSender.h:128
bool IsEmpty() const
Definition Queue.h:206
bool Enqueue(const FElementType &Item)
Definition Queue.h:123
bool Dequeue(FElementType &OutItem)
Definition Queue.h:80
Definition SharedPointer.h:692
Definition SharedPointer.h:153
@ WaitForWrite
Definition SocketTypes.h:94
@ false
Definition radaudio_common.h:23
Definition IPv4Endpoint.h:27
static FTimespan Zero()
Definition Timespan.h:747