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