1 #pragma once 2 3 #include "erase.hpp" 4 #include "util.hpp" 5 6 #include <string_view> 7 8 namespace estoraged 9 { 10 11 class VerifyDriveGeometry : public Erase 12 { 13 public: 14 /** @brief Creates a verifyDriveGeomentry erase object. 15 * 16 * @param[in] inDevPath - the linux device path for the block device. 17 */ VerifyDriveGeometry(std::string_view inDevPath)18 VerifyDriveGeometry(std::string_view inDevPath) : Erase(inDevPath) {} 19 20 /** @brief Test if input is in between the max and min expected sizes, 21 * and throws errors accordingly. 22 * 23 * @param[in] eraseMaxGeometry - the max expected size to erase. 24 * @param[in] eraseMinGeometry - the min expected size to erase. 25 * @param[in] bytes - Size of the block device. 26 */ geometryOkay(uint64_t eraseMaxGeometry,uint64_t eraseMinGemoetry)27 void geometryOkay(uint64_t eraseMaxGeometry, uint64_t eraseMinGemoetry) 28 { 29 geometryOkay(eraseMaxGeometry, eraseMinGemoetry, 30 util::findSizeOfBlockDevice(devPath)); 31 } 32 void geometryOkay(uint64_t eraseMaxGeometry, uint64_t eraseMinGemoetry, 33 uint64_t bytes); 34 }; 35 36 } // namespace estoraged 37