/*** Copyright (C) 2023 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: ISocketServerLimits.hpp Date: 2023-11-29 Author: Reece ***/ #pragma once namespace Aurora::IO::Net { struct ISocketServerLimits { virtual AuOptional GetMaxConnectionsPerIp() = 0; virtual AuOptional SetMaxConnectionsPerIp(AuOptional optNextValue) = 0; virtual AuOptional GetMaxConnections() = 0; virtual AuOptional SetMaxConnections(AuOptional optNextValue) = 0; virtual AuList GetWhitelist() = 0; virtual void SetWhitelist(AuList whitelist) = 0; virtual AuList GetBlacklist() = 0; virtual void SetBlacklist(AuList blacklist) = 0; virtual AuOptional GetBeforeDDoSDCAverageThroughputLimit() = 0; virtual AuOptional SetBeforeDDoSDCAverageThroughputLimit(AuOptional optNextValue) = 0; virtual AuOptional GetBeforeDDoSDCFrameTimeMS() = 0; virtual AuOptional SetBeforeDDoSDCFrameTimeMS(AuOptional optNextValue) = 0; virtual AuOptional GetBeforeDDoSTickFrameLimitCount() = 0; virtual AuOptional SetBeforeDDoSTickFrameLimitCount(AuOptional optNextValue) = 0; virtual AuOptional GetBeforeDDoSTickFrameTimeMS() = 0; virtual AuOptional SetBeforeDDoSTickFrameTimeMS(AuOptional optNextValue) = 0; virtual AuOptional GetAutoBanOnDDoSDetectA() = 0; virtual AuOptional SetAutoBanOnDDoSDetectA(AuOptional optNextValue) = 0; virtual AuOptional GetAutoBanTimeSecs() = 0; virtual AuOptional SetAutoBanTimeSecs(AuOptional optNextValue) = 0; }; }