Serenity Operating System
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}