Reece Wilson
04aca5fcf2
[+] 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
70 lines
1.9 KiB
C++
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;
|
|
};
|
|
}; |