UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
EventLoopIOAccessBSDSocket.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6
7#if PLATFORM_HAS_BSD_SOCKETS
8
13#include "Templates/Function.h"
14
15namespace UE::EventLoop {
16
18{
24 Ok,
25
31 NoResources,
32
38 Invalid,
39};
40
43
45{
47 EIOFlags Flags = EIOFlags::None;
48 FSocketIOCallback Callback;
49};
50
51class FIOAccessBSDSocket final : public FNoncopyable
52{
53public:
54 struct FStorageTraits : public FManagedStorageDefaultTraits
55 {
56 using FExternalHandle = FIORequestHandle;
57 };
58
60
63 {
64 }
65
67 {
68 if (Request.Socket == INVALID_SOCKET || Request.Flags == EIOFlags::None || !Request.Callback)
69 {
70 return FIORequestHandle();
71 }
72
73 return IORequestStorage.Add({MoveTemp(Request)});
74 }
75
77 {
79 }
80
81private:
83};
84
85/* UE::EventLoop */ }
86
87inline FString LexToString(UE::EventLoop::ESocketIoRequestStatus Status)
88{
89 switch (Status)
90 {
91 case UE::EventLoop::ESocketIoRequestStatus::Ok: return TEXT("Ok");
92 case UE::EventLoop::ESocketIoRequestStatus::NoResources: return TEXT("NoResources");
93 case UE::EventLoop::ESocketIoRequestStatus::Invalid: return TEXT("Invalid");
94
95 default:
97 return TEXT("Unknown");
98 }
99}
100
101#endif // PLATFORM_HAS_BSD_SOCKETS
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkNoEntry()
Definition AssertionMacros.h:316
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const TCHAR * LexToString(EAnalyticsRecordEventMode Mode)
Definition IAnalyticsProvider.cpp:5
#define INVALID_SOCKET
Definition SocketSubsystemBSDPrivate.h:44
int32 SOCKET
Definition SocketSubsystemBSDPrivate.h:47
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition UnrealTemplate.h:321
Definition FunctionFwd.h:19
@ Socket
Definition EngineTypes.h:3849
Definition EventLoopLog.cpp:5
TUniqueFunction< void()> FManagedStorageOnRemoveComplete
Definition EventLoopManagedStorage.h:17
EIOFlags
Definition IEventLoopIOManager.h:20
TResourceHandle< FIORequestHandleTraits > FIORequestHandle
Definition IEventLoopIOManager.h:17
IEntityStorageInterface FStorageType
Definition MassEntityManager.h:75