1e6ffe704SJohn Edward Broadbent #pragma once 2e6ffe704SJohn Edward Broadbent 3e6ffe704SJohn Edward Broadbent #include "erase.hpp" 4*a6e3b99dSJohn 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 */ 18e6ffe704SJohn Edward Broadbent VerifyDriveGeometry(std::string_view inDevPath) : Erase(inDevPath) 19e6ffe704SJohn Edward Broadbent {} 20e6ffe704SJohn Edward Broadbent 21e6ffe704SJohn Edward Broadbent /** @brief Test if input is in between the max and min expected sizes, 22e6ffe704SJohn Edward Broadbent * and throws errors accordingly. 23e6ffe704SJohn Edward Broadbent * 24e6ffe704SJohn Edward Broadbent * @param[in] bytes - Size of the block device 25e6ffe704SJohn Edward Broadbent */ 26*a6e3b99dSJohn Edward Broadbent void geometryOkay() 27*a6e3b99dSJohn Edward Broadbent { 28*a6e3b99dSJohn Edward Broadbent geometryOkay(util::Util::findSizeOfBlockDevice(devPath)); 29*a6e3b99dSJohn Edward Broadbent } 30e6ffe704SJohn Edward Broadbent void geometryOkay(uint64_t bytes); 31e6ffe704SJohn Edward Broadbent }; 32d3bfa7bbSJohn Edward Broadbent 33d3bfa7bbSJohn Edward Broadbent } // namespace estoraged 34