#ifndef SITE_HH #define SITE_HH #include "transport.hh" #include class Config; class Logger; class TaskRunner; class Travel; class Site { public: virtual ~Site() = default; static std::unique_ptr create(std::shared_ptr logger, std::shared_ptr runner, std::shared_ptr travel); virtual bool setup(Logger* logger, Config* config) = 0; virtual void start() = 0; virtual void reload() = 0; virtual Transport::Handler* handler() = 0; protected: Site() = default; Site(Site const&) = delete; Site& operator=(Site const&) = delete; }; #endif // SITE_HH