/** * /mnt/z/my_git/RCRS-CSD-327/include/Utils.hpp * @file Utils.hpp * @author Avinal Kumar * @since March 04, 2021 * * Utilities */ // include blowfish library #include // include standard headers #include #include #include #include #include // defines namespace fs = std::filesystem; #if !defined(UTILS_HPP) #define UTILS_HPP namespace MCPS { struct filestat { std::string filename; fs::path filepath; DWORD filesize; fs::file_type filetype; std::time_t m_time; bool is_regular; filestat(std::string const &file_name); void print(); private: template std::time_t to_time_t(TP tp) { using namespace std::chrono; auto sctp = time_point_cast(tp - TP::clock::now() + system_clock::now()); return system_clock::to_time_t(sctp); } }; class fileop { private: std::unordered_map _files; public: DWORD read_file(std::string const &infile, std::vector &input_buf, filestat const &stat); DWORD write_file(std::string const &outfile, std::vector &output_buf, DWORD out_size); std::unordered_map scan_current_directory(); DWORD pad_input(std::vector &input_buf, DWORD in_size); DWORD attch_key(std::vector &input_buf, std::string const &key, DWORD in_size); }; } // namespace MCPS #endif // UTILS_HPP