KWin
Loading...
Searching...
No Matches
src
utils
ramfile.h
Go to the documentation of this file.
1
/*
2
KWin - the KDE window manager
3
This file is part of the KDE project.
4
5
SPDX-FileCopyrightText: 2022 MBition GmbH
6
SPDX-FileContributor: Kai Uwe Broulik <kai_uwe.broulik@mbition.io>
7
8
SPDX-License-Identifier: GPL-2.0-or-later
9
*/
10
11
#pragma once
12
13
#include <config-kwin.h>
14
#include <kwin_export.h>
15
16
#if HAVE_MEMFD
17
#include "
filedescriptor.h
"
18
#else
19
#include <QTemporaryFile>
20
#include <memory>
21
#endif
22
23
#include <QFlag>
24
25
class
QByteArray;
26
27
namespace
KWin
28
{
29
46
class
KWIN_EXPORT
RamFile
47
{
48
public
:
55
enum class
Flag
{
56
SealWrite = 1 << 0,
57
};
58
Q_DECLARE_FLAGS(Flags, Flag)
59
60
RamFile
() = default;
71
RamFile
(const
char
*name, const
void
*inData,
int
size, Flags flags = {});
72
73
RamFile
(
RamFile
&&other) Q_DECL_NOEXCEPT;
74
RamFile
&operator=(
RamFile
&&other) Q_DECL_NOEXCEPT;
75
79
~RamFile
();
80
84
bool
isValid()
const
;
91
Flags effectiveFlags()
const
;
92
98
int
fd()
const
;
102
int
size()
const
;
103
104
private
:
105
void
cleanup();
106
107
int
m_size = 0;
108
Flags m_flags = {};
109
110
#if HAVE_MEMFD
111
KWin::FileDescriptor
m_fd;
112
#else
113
std::unique_ptr<QTemporaryFile> m_tmp;
114
#endif
115
};
116
117
}
// namespace KWin
KWin::FileDescriptor
Definition
filedescriptor.h:17
KWin::RamFile
Creates a file in memory.
Definition
ramfile.h:47
KWin::RamFile::Flag
Flag
Definition
ramfile.h:55
filedescriptor.h
KWin
Definition
activation_test.cpp:20
Generated on Sat Feb 17 2024 01:42:10 for KWin by
1.10.0