#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 get_guid() const; virtual void startup(DeliverConfig&& config); virtual void transmit(); virtual void shutdown(); protected: DeliverConfig config; DeliverStatus status; }; }