#pragma once #include "guid.hpp" namespace basalt::shared::deliver { struct DeliverConfig { guid::Guid engine; ///< The GUID of render engine. }; enum class DeliverStatus { Ready, ///< Engine was allocated but not initialized. Running, ///< Engine has been initialized and running. Stop, ///< Engine is shutdown. }; class IDeliver { public: IDeliver(); virtual ~IDeliver(); public: virtual guid::Guid GetGuid() const; virtual void Startup(DeliverConfig&& config); virtual void Transmit(); virtual void Shutdown(); protected: DeliverConfig config; DeliverStatus status; }; }