#pragma once #include "fs.hpp" #include #include #include #include namespace ipmi_flash { class FileCleanupHandler : public blobs::GenericBlobInterface { public: static std::unique_ptr CreateCleanupHandler( const std::string& blobId, const std::vector& files, std::unique_ptr helper); FileCleanupHandler(const std::string& blobId, const std::vector& files, std::unique_ptr helper) : supported(blobId), files(files), helper(std::move(helper)) {} ~FileCleanupHandler() = default; FileCleanupHandler(const FileCleanupHandler&) = default; FileCleanupHandler& operator=(const FileCleanupHandler&) = default; FileCleanupHandler(FileCleanupHandler&&) = default; FileCleanupHandler& operator=(FileCleanupHandler&&) = default; bool canHandleBlob(const std::string& path) override; std::vector getBlobIds() override; bool commit(uint16_t session, const std::vector& data) override; /* These methods return true without doing anything. */ bool open(uint16_t, uint16_t, const std::string&) override { return true; } bool close(uint16_t) override { return true; } bool expire(uint16_t) override { return true; } /* These methods are unsupported. */ bool deleteBlob(const std::string&) override { return false; } bool stat(const std::string&, blobs::BlobMeta*) override { return false; } std::vector read(uint16_t, uint32_t, uint32_t) override { return {}; } bool write(uint16_t, uint32_t, const std::vector&) override { return false; } bool writeMeta(uint16_t, uint32_t, const std::vector&) override { return false; } bool stat(uint16_t, blobs::BlobMeta*) override { return false; } private: std::string supported; std::vector files; std::unique_ptr helper; }; } // namespace ipmi_flash