/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: AuNetSocketServer.Linux.hpp Date: 2022-8-22 Author: Reece ***/ #pragma once #include "AuNetSocketServerAcceptReadOperation.hpp" namespace Aurora::IO::Net { struct SocketServerImpl : SocketServer { SocketServerImpl(struct NetInterface *pInterface, struct NetWorker *pWorker, const AuSPtr &pDriver, const AuSPtr &pSocketDriverFactory, AuUInt32 uMaxConnections, AuUInt32 uDefaultInputStreamSize, bool bMultiThreaded); virtual void DoNonblockingReadTick() override; virtual bool InitSocket(const NetEndpoint &localAddress) override; virtual bool ImplBind() override; virtual bool ImplListen() override; virtual bool BeginAcceptLoop() override; void DetroyServer() override; protected: SocketServerAcceptReadOperation acceptOperation_; AuSPtr pSocketDriverFactory_; }; }