2022-08-28 19:02:06 +00:00
|
|
|
/***
|
|
|
|
Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
|
|
|
|
File: INetInterface.hpp
|
|
|
|
Date: 2022-8-15
|
|
|
|
Author: Reece
|
|
|
|
***/
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
namespace Aurora::IO::Net
|
|
|
|
{
|
|
|
|
struct INetSrvDatagram;
|
|
|
|
struct INetSrvResolve;
|
|
|
|
struct INetSrvSockets;
|
|
|
|
struct INetSrvWorkers;
|
2022-12-14 20:08:52 +00:00
|
|
|
struct INetSrvInterfaces;
|
2022-08-28 19:02:06 +00:00
|
|
|
|
|
|
|
struct INetInterface
|
|
|
|
{
|
2022-12-14 20:08:52 +00:00
|
|
|
virtual void Shutdown() = 0;
|
2022-08-28 19:02:06 +00:00
|
|
|
|
2022-12-14 20:08:52 +00:00
|
|
|
virtual void Destroy() = 0;
|
2022-08-28 19:02:06 +00:00
|
|
|
|
|
|
|
virtual bool TrySchedule(const AuSPtr<IIOProcessorWorkUnit> &pWorkUnit) = 0;
|
|
|
|
|
2022-12-14 20:08:52 +00:00
|
|
|
virtual AuSPtr<INetSrvWorkers> GetWorkersService() = 0;
|
2024-04-01 05:05:30 +00:00
|
|
|
virtual void SetWorkersService(const AuSPtr<INetSrvWorkers> &pWorkers) = 0;
|
2022-12-14 20:08:52 +00:00
|
|
|
|
|
|
|
virtual AuSPtr<INetSrvResolve> GetResolveService() = 0;
|
2024-04-01 05:05:30 +00:00
|
|
|
virtual void SetResolveService(const AuSPtr<INetSrvResolve> &pResolve) = 0;
|
2022-12-14 20:08:52 +00:00
|
|
|
|
|
|
|
virtual AuSPtr<INetSrvSockets> GetSocketService() = 0;
|
2024-04-01 05:05:30 +00:00
|
|
|
virtual void SetSocketService(const AuSPtr<INetSrvSockets> &pSockets) = 0;
|
2022-12-14 20:08:52 +00:00
|
|
|
|
|
|
|
virtual AuSPtr<INetSrvDatagram> GetDatagramService() = 0;
|
2024-04-01 05:05:30 +00:00
|
|
|
virtual void SetDatagramService(const AuSPtr<INetSrvDatagram> &pDatagrams) = 0;
|
2022-12-14 20:08:52 +00:00
|
|
|
|
|
|
|
virtual AuSPtr<INetSrvInterfaces> GetInterfacesService() = 0;
|
2024-04-01 05:05:30 +00:00
|
|
|
virtual void SetInterfacesService(const AuSPtr<INetSrvInterfaces> &pNetworkInterfaces) = 0;
|
2022-12-14 20:08:52 +00:00
|
|
|
|
2022-08-28 19:02:06 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
AUKN_SYM AuSPtr<INetInterface> NewNetworkInterface();
|
|
|
|
}
|