Serenity Operating System
at master 37 lines 636 B view raw
1/* 2 * Copyright (c) 2020-2021, the SerenityOS developers. 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/DeprecatedString.h> 10#include <AK/Noncopyable.h> 11 12namespace Core { 13 14class TempFile { 15 AK_MAKE_NONCOPYABLE(TempFile); 16 AK_MAKE_NONMOVABLE(TempFile); 17 18public: 19 enum class Type { 20 File, 21 Directory 22 }; 23 24 static NonnullOwnPtr<TempFile> create(Type = Type::File); 25 ~TempFile(); 26 27 DeprecatedString path() const { return m_path; } 28 29private: 30 TempFile(Type); 31 static DeprecatedString create_temp(Type); 32 33 Type m_type { Type::File }; 34 DeprecatedString m_path; 35}; 36 37}