ladybird/Userland/Libraries/LibCore/TempFile.h
Itamar 95545648bd LibCore: Add utility class for temporary files and directories
Core::TempFile is a RAII type that creates a temporary file or directory
on construction and deletes it on destruction.
2022-01-12 14:55:19 +01:00

38 lines
596 B
C++

/*
* Copyright (c) 2020-2021, the SerenityOS developers.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Noncopyable.h>
#include <AK/String.h>
namespace Core {
class TempFile {
AK_MAKE_NONCOPYABLE(TempFile);
AK_MAKE_NONMOVABLE(TempFile);
public:
enum class Type {
File,
Directory
};
static NonnullOwnPtr<TempFile> create(Type = Type::File);
~TempFile();
String path() const { return m_path; }
private:
TempFile(Type);
static String create_temp(Type);
Type m_type { Type::File };
String m_path;
};
}