55 check(Socket !=
nullptr);
64 if (Thread !=
nullptr)
101 check(Thread ==
nullptr);
102 return DataReceivedDelegate;
121 while (!bStopping.load(std::memory_order_acquire))
131 bStopping.store(
true, std::memory_order_release);
134 virtual void Exit()
override { }
153 Reader->SetNumUninitialized(FMath::Min(
Size, MaxReadBufferSize));
157 if (Socket->
RecvFrom(Reader->GetData(), Reader->Num(),
Read, *Sender))
161 DataReceivedDelegate.ExecuteIfBound(Reader,
FIPv4Endpoint(Sender));
184 std::atomic<bool> bStopping;
196 uint32 MaxReadBufferSize = 65507u;
199 uint32 ThreadStackSize = 128 * 1024;
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define TRACE_CPUPROFILER_EVENT_SCOPE(Name)
Definition CpuProfilerTrace.h:528
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define PLATFORM_SOCKETSUBSYSTEM
Definition SocketSubsystem.h:44
@ SOCKTYPE_Datagram
Definition SocketTypes.h:37
TSharedPtr< FArrayReader, ESPMode::ThreadSafe > FArrayReaderPtr
Definition UdpSocketReceiver.h:21
uint32 Size
Definition VulkanMemory.cpp:4034
static const uint64 GetPoolThreadMask()
Definition AndroidPlatformAffinity.h:38
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 bool HasPendingData(uint32 &PendingDataSize)=0
virtual bool Wait(ESocketWaitConditions::Type Condition, FTimespan WaitTime)=0
virtual SOCKETS_API bool RecvFrom(uint8 *Data, int32 BufferSize, int32 &BytesRead, FInternetAddr &Source, ESocketReceiveFlags::Type Flags=ESocketReceiveFlags::None)
Definition Sockets.cpp:63
ESocketType GetSocketType() const
Definition Sockets.h:458
Definition UdpSocketReceiver.h:38
virtual void Stop() override
Definition UdpSocketReceiver.h:129
void Update(const FTimespan &SocketWaitTime)
Definition UdpSocketReceiver.h:139
virtual ~FUdpSocketReceiver()
Definition UdpSocketReceiver.h:62
void SetThreadStackSize(uint32 InTheadStackSize)
Definition UdpSocketReceiver.h:80
virtual uint32 Run() override
Definition UdpSocketReceiver.h:119
FOnSocketDataReceived & OnDataReceived()
Definition UdpSocketReceiver.h:99
virtual void Tick() override
Definition UdpSocketReceiver.h:170
FUdpSocketReceiver(FSocket *InSocket, const FTimespan &InWaitTime, const TCHAR *InThreadName)
Definition UdpSocketReceiver.h:48
virtual bool Init() override
Definition UdpSocketReceiver.h:114
void SetMaxReadBufferSize(uint32 InMaxReadBufferSize)
Definition UdpSocketReceiver.h:74
virtual FSingleThreadRunnable * GetSingleThreadInterface() override
Definition UdpSocketReceiver.h:109
virtual void Exit() override
Definition UdpSocketReceiver.h:134
void Start()
Definition UdpSocketReceiver.h:86
Definition SocketSubsystem.h:58
static SOCKETS_API ISocketSubsystem * Get(const FName &SubsystemName=NAME_None)
Definition SocketSubsystem.cpp:224
virtual TSharedRef< FInternetAddr > CreateInternetAddr(uint32 Address, uint32 Port=0)
Definition SocketSubsystem.h:317
Definition SharedPointer.h:692
Definition SharedPointer.h:153
@ WaitForRead
Definition SocketTypes.h:89
@ false
Definition radaudio_common.h:23
Definition IPv4Endpoint.h:27
static FTimespan Zero()
Definition Timespan.h:747