1 #pragma once 2 3 #include "erase.hpp" 4 5 #include <stdplus/fd/create.hpp> 6 #include <stdplus/fd/managed.hpp> 7 8 #include <span> 9 #include <string> 10 11 using stdplus::fd::ManagedFd; 12 13 class Pattern : public Erase 14 { 15 public: 16 /** @brief Creates a pattern erase object. 17 * 18 * @param[in] inDevPath - the linux device path for the block device. 19 */ 20 Pattern(std::string_view inDevPath) : Erase(inDevPath) 21 {} 22 23 /** @brief writes an uncompressible random pattern to the drive 24 * and throws errors accordingly. 25 * 26 * @param[in] bytes - Size of the block device 27 */ 28 void writePattern(uint64_t driveSize); 29 30 /** @brief verifies the uncompressible random pattern is on the drive 31 * and throws errors accordingly. 32 * 33 * @param[in] bytes - Size of the block device 34 */ 35 void verifyPattern(uint64_t driveSize); 36 }; 37