From 503efeb6b5d881fd03e21b50e796f26ac87753c4 Mon Sep 17 00:00:00 2001 From: rexy712 Date: Thu, 30 Jun 2022 12:22:09 -0700 Subject: [PATCH] Update filerd to use std namespace types/functions. --- include/rexy/filerd.hpp | 22 +++++++++++----------- src/filerd.cpp | 41 +++++++++++++++++++++-------------------- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/include/rexy/filerd.hpp b/include/rexy/filerd.hpp index 7db8425..533d050 100644 --- a/include/rexy/filerd.hpp +++ b/include/rexy/filerd.hpp @@ -1,6 +1,6 @@ /** This file is a part of rexy's general purpose library - Copyright (C) 2020 rexy712 + Copyright (C) 2020-2022 rexy712 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,7 +30,7 @@ #include "utility.hpp" #include "rexy.hpp" #include "buffer.hpp" - +#include "string_view.hpp" namespace rexy{ @@ -38,7 +38,7 @@ namespace rexy{ class filerd { private: - FILE* m_fp = nullptr; + std::FILE* m_fp = nullptr; public: constexpr filerd(void)noexcept = default; @@ -49,20 +49,20 @@ namespace rexy{ ~filerd(void)noexcept; filerd& operator=(const filerd&) = delete; constexpr filerd& operator=(filerd&& f)noexcept{ - swap(m_fp, f.m_fp); + rexy::swap(m_fp, f.m_fp); return *this; } - void reset(FILE* fp = nullptr)noexcept; - FILE* release(void)noexcept; + void reset(std::FILE* fp = nullptr)noexcept; + std::FILE* release(void)noexcept; std::size_t length(void)noexcept; std::size_t position(void)const noexcept; void rewind(std::size_t pos = 0)noexcept; - operator FILE*(void)noexcept; - operator const FILE*(void)const noexcept; - FILE* get(void)noexcept; - const FILE* get(void)const noexcept; + operator std::FILE*(void)noexcept; + operator const std::FILE*(void)const noexcept; + std::FILE* get(void)noexcept; + const std::FILE* get(void)const noexcept; operator bool(void)const noexcept; std::size_t read(char* dest, std::size_t bytes)noexcept; @@ -71,7 +71,7 @@ namespace rexy{ rexy::buffer read_bin(std::size_t bytes)noexcept(std::is_nothrow_constructible, char*, std::size_t>::value); std::size_t write(const char* c, std::size_t bytes)noexcept; - std::size_t write(const rexy::string_base& s)noexcept; + std::size_t write(rexy::string_view s)noexcept; }; } diff --git a/src/filerd.cpp b/src/filerd.cpp index b66b5eb..49e7023 100644 --- a/src/filerd.cpp +++ b/src/filerd.cpp @@ -1,6 +1,6 @@ /** This file is a part of rexy's general purpose library - Copyright (C) 2020 rexy712 + Copyright (C) 2020-2022 rexy712 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -21,6 +21,7 @@ //which is not standard in c++ as of c++23, though it is in c since c11. #define _CRT_SECURE_NO_WARNINGS #endif + #include "rexy/filerd.hpp" #include //fopen, fclose @@ -30,47 +31,47 @@ namespace rexy{ filerd::filerd(const char* f, const char* mode)noexcept: - m_fp(fopen(f, mode)){} + m_fp(std::fopen(f, mode)){} filerd::~filerd(void)noexcept{ if(m_fp) - fclose(m_fp); + std::fclose(m_fp); } - void filerd::reset(FILE* fp)noexcept{ + void filerd::reset(std::FILE* fp)noexcept{ if(m_fp) - fclose(m_fp); + std::fclose(m_fp); m_fp = fp; } - FILE* filerd::release(void)noexcept{ + std::FILE* filerd::release(void)noexcept{ return std::exchange(m_fp, nullptr); } std::size_t filerd::length(void)noexcept{ if(!m_fp) return 0; std::size_t tmp, ret; - tmp = ftell(m_fp); - fseek(m_fp, 0, SEEK_END); - ret = ftell(m_fp); - fseek(m_fp, long(tmp), SEEK_SET); + tmp = std::ftell(m_fp); + std::fseek(m_fp, 0, SEEK_END); + ret = std::ftell(m_fp); + std::fseek(m_fp, long(tmp), SEEK_SET); return ret; } std::size_t filerd::position(void)const noexcept{ - return ftell(m_fp); + return std::ftell(m_fp); } void filerd::rewind(std::size_t pos)noexcept{ - fseek(m_fp, long(pos), SEEK_SET); + std::fseek(m_fp, long(pos), SEEK_SET); } - filerd::operator FILE*(void)noexcept{ + filerd::operator std::FILE*(void)noexcept{ return m_fp; } - filerd::operator const FILE*(void)const noexcept{ + filerd::operator const std::FILE*(void)const noexcept{ return m_fp; } - FILE* filerd::get(void)noexcept{ + std::FILE* filerd::get(void)noexcept{ return m_fp; } - const FILE* filerd::get(void)const noexcept{ + const std::FILE* filerd::get(void)const noexcept{ return m_fp; } filerd::operator bool(void)const noexcept{ @@ -78,7 +79,7 @@ namespace rexy{ } std::size_t filerd::read(char* dest, std::size_t bytes)noexcept{ - return fread(dest, 1, bytes, m_fp); + return std::fread(dest, 1, bytes, m_fp); } rexy::string filerd::read(std::size_t bytes)noexcept{ rexy::string ret; @@ -91,7 +92,7 @@ namespace rexy{ rexy::string ret; int c; std::size_t count = 0; - for(c = fgetc(m_fp);c != EOF && c != '\n';c = fgetc(m_fp)){ + for(c = std::fgetc(m_fp);c != EOF && c != '\n';c = std::fgetc(m_fp)){ char ch = c; ret.append(&ch, 1); if(++count == max) @@ -108,9 +109,9 @@ namespace rexy{ return ret; } std::size_t filerd::write(const char* c, std::size_t bytes)noexcept{ - return fwrite(c, 1, bytes, m_fp); + return std::fwrite(c, 1, bytes, m_fp); } - std::size_t filerd::write(const rexy::string_base& c)noexcept{ + std::size_t filerd::write(rexy::string_view c)noexcept{ return write(c.data(), c.length()); }