// Copyright (c) 2020 Egor Tensin // This file is part of the "winapi-common" project. // For details, see https://github.com/egor-tensin/winapi-common. // Distributed under the MIT License. #pragma once #include "handle.hpp" #include "path.hpp" #include #include namespace winapi { class File : private Handle { public: static Handle open_r(const std::string&); static Handle open_r(const CanonicalPath&); static Handle open_w(const std::string&); static Handle open_w(const CanonicalPath&); static void remove(const std::string&); static void remove(const CanonicalPath&); explicit File(Handle&& handle) : Handle(std::move(handle)) {} using Handle::close; using Handle::read; using Handle::write; }; } // namespace winapi