AuroraRuntime/Include/Aurora/IO/Net/INetSrvSockets.hpp
Reece Wilson 04aca5fcf2 [+] Aurora::IO::Net::NetSocketConnectByHost
[+] Aurora::IO::FS::DirDeleterEx
[+] Aurora::IO::Compress
[+] Aurora::IO::Decompress
[*] Aurora::Memory::ByteBuffer zero-alloc fixes
[*] Aurora::Memory::ByteBuffer linear read of begin/end should return (`const AuUInt8 *`)'s
[*] Changed NT file CREATE flags
[*] Fix linux regression
[*] Update logger sink DirLogArchive
... [+] DirectoryLogger::uMaxLogsOrZeroBeforeDelete
... [+] DirectoryLogger::uMaxCumulativeFileSizeInMiBOrZeroBeforeDelete
... [+] DirectoryLogger::uMaxCumulativeFileSizeInMiBOrZeroBeforeCompress
... [+] DirectoryLogger::uMaxFileTimeInDeltaMSOrZeroBeforeCompress
... [+] DirectoryLogger::uMaxFileTimeInDeltaMSOrZeroBeforeDelete
[*] FIX: BufferedLineReader was taking the wrong end head
(prep) LZMACompressor
[*] Updated build-script for LZMA (when i can be bothered to impl it)
(prep) FSOverlappedUtilities
(prep) FSDefaultOverlappedWorkerThread | default worker pool / apc dispatcher / auasync dispatcher concept for higher level overlapped ops
(stub) [+] Aurora::IO::FS::OverlappedForceDelegatedIO
(stub) [+] Aurora::IO::FS::OverlappedCompress
(stub) [+] Aurora::IO::FS::OverlappedDecompress
(stub) [+] Aurora::IO::FS::OverlappedWrite
(stub) [+] Aurora::IO::FS::OverlappedRead
(stub) [+] Aurora::IO::FS::OverlappedStat
(stub) [+] Aurora::IO::FS::OverlappedCopy
(stub) [+] Aurora::IO::FS::OverlappedRelink
(stub) [+] Aurora::IO::FS::OverlappedTrustFile
(stub) [+] Aurora::IO::FS::OverlappedBlockFile
(stub) [+] Aurora::IO::FS::OverlappedUnblockFile
(stub) [+] Aurora::IO::FS::OverlappedDelete
2023-01-26 21:43:19 +00:00

70 lines
1.9 KiB
C++

/***
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: INetSrvSockets.hpp
Date: 2022-8-15
Author: Reece
***/
#pragma once
namespace Aurora::IO::Net
{
struct ISocketServer;
struct NetSocketConnectByHost
{
AuOptionalEx<NetHostname> netHostname;
AuOptionalEx<AuUInt16> uPort;
AuOptionalEx<ETransportProtocol> protocol;
};
struct NetSocketConnect
{
// connect by protocol, address:port
AuOptionalEx<NetEndpoint> endpoint;
// or connect by [string/ip family, ip address], port
NetSocketConnectByHost byHost;
//
AuSPtr<ISocketDriver> pDriver;
AuUInt32 uMaxConnectTimeMs {};
};
struct NetSocketConnectMany
{
ETransportProtocol protocol {};
AuList<IPAddress> ips;
AuUInt16 uPort {};
AuSPtr<ISocketDriver> pDriver;
AuUInt32 uMaxConnectTimeMs {};
};
struct NetSocketBind
{
ETransportProtocol protocol {};
IPAddress ip;
AuUInt16 uPort {};
AuSPtr<ISocketDriverFactory> pFactory;
AuSPtr<ISocketServerDriver> pDriver;
AuUInt32 uMaxConnections {};
AuUInt32 uMaxAcceptBacklog {};
AuUInt32 uDefaultInputStreamSize /* also: abs max datagram size of datagrams over sockets. note that each sessions buffer could be raised if tick/fragement future-buffering rejection. */ {};
bool bMultiThreaded {};
};
struct NetSocketBindEx : NetSocketBind
{
AuUInt32 uUDPTimeoutMs {};
};
struct INetSrvSockets
{
virtual AuSPtr<ISocket> Connect(const NetSocketConnect &netConnect) = 0;
virtual AuSPtr<ISocket> ConnectMany(const NetSocketConnectMany &netConnectMany) = 0;
virtual AuSPtr<ISocketServer> NewServer(const NetSocketBind &netBind) = 0;
virtual AuSPtr<ISocketServer> NewServerEx(const NetSocketBindEx &netBindEx) = 0;
};
};