42 lines
2.3 KiB
C++
42 lines
2.3 KiB
C++
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
|
|
|
|
#pragma once
|
|
|
|
#if PLATFORM_UNIX
|
|
|
|
#include "Engine/Platform/Base/NetworkBase.h"
|
|
|
|
class FLAXENGINE_API UnixNetwork : public NetworkBase
|
|
{
|
|
public:
|
|
|
|
// [NetworkBase]
|
|
static bool CreateSocket(NetworkSocket& socket, NetworkProtocol proto, NetworkIPVersion ipv);
|
|
static bool DestroySocket(NetworkSocket& socket);
|
|
static bool SetSocketOption(NetworkSocket& socket, NetworkSocketOption option, bool value);
|
|
static bool SetSocketOption(NetworkSocket& socket, NetworkSocketOption option, int32 value);
|
|
static bool GetSocketOption(NetworkSocket& socket, NetworkSocketOption option, bool* value);
|
|
static bool GetSocketOption(NetworkSocket& socket, NetworkSocketOption option, int32* value);
|
|
static bool ConnectSocket(NetworkSocket& socket, NetworkEndPoint& endPoint);
|
|
static bool BindSocket(NetworkSocket& socket, NetworkEndPoint& endPoint);
|
|
static bool Listen(NetworkSocket& socket, uint16 queueSize);
|
|
static bool Accept(NetworkSocket& serverSocket, NetworkSocket& newSocket, NetworkEndPoint& newEndPoint);
|
|
static bool IsReadable(NetworkSocket& socket);
|
|
static bool IsWritable(NetworkSocket& socket);
|
|
static bool CreateSocketGroup(uint32 capacity, NetworkSocketGroup& group);
|
|
static bool DestroySocketGroup(NetworkSocketGroup& group);
|
|
static int32 Poll(NetworkSocketGroup& group);
|
|
static bool GetSocketState(NetworkSocketGroup& group, uint32 index, NetworkSocketState& state);
|
|
static int32 AddSocketToGroup(NetworkSocketGroup& group, NetworkSocket& socket);
|
|
static bool GetSocketFromGroup(NetworkSocketGroup& group, uint32 index, NetworkSocket* socket);
|
|
static void RemoveSocketFromGroup(NetworkSocketGroup& group, uint32 index);
|
|
static bool RemoveSocketFromGroup(NetworkSocketGroup& group, NetworkSocket& socket);
|
|
static void ClearGroup(NetworkSocketGroup& group);
|
|
static int32 WriteSocket(NetworkSocket socket, byte* data, uint32 length, NetworkEndPoint* endPoint = nullptr);
|
|
static int32 ReadSocket(NetworkSocket socket, byte* buffer, uint32 bufferSize, NetworkEndPoint* endPoint = nullptr);
|
|
static bool CreateEndPoint(NetworkAddress& address, NetworkIPVersion ipv, NetworkEndPoint& endPoint, bool bindable = true);
|
|
static NetworkEndPoint RemapEndPointToIPv6(NetworkEndPoint endPoint);
|
|
};
|
|
|
|
#endif
|