#ifndef SEND_FILE_HH #define SEND_FILE_HH #include "transport.hh" #include #include #include #include class Logger; class Config; class SendFile { public: virtual ~SendFile() = default; static std::unique_ptr create(); virtual bool setup(Logger* logger, Config* config, std::string_view sendfile_header_name, std::string_view sendfile_path_name) = 0; virtual std::unique_ptr create_ok_file( Transport* transport, std::filesystem::path const& full_path, std::string_view relative_path, std::string_view etag, std::optional size) = 0; protected: SendFile() = default; SendFile(SendFile const&) = delete; SendFile& operator=(SendFile const&) = delete; }; #endif // SEND_FILE_HH