Krita Source Code Documentation
Loading...
Searching...
No Matches
KisTemporaryResourceStorageLock.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2023 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#include "
KisTemporaryResourceStorageLock.h
"
8
9
#include <
kis_assert.h
>
10
#include <
KisResourceLocator.h
>
11
12
KisTemporaryResourceStorageLockAdapter::KisTemporaryResourceStorageLockAdapter
(
const
QString &temporaryStorageLocationTemplate)
13
: m_temporaryStorageLocationTemplate(temporaryStorageLocationTemplate)
14
{
15
}
16
17
void
KisTemporaryResourceStorageLockAdapter::lock
()
18
{
19
int
counter = 0;
20
QString
storageLocation
=
m_temporaryStorageLocationTemplate
;
21
22
while
(
KisResourceLocator::instance
()->hasStorage(
storageLocation
)) {
23
storageLocation
= QString(
"%1_%2"
).arg(
m_temporaryStorageLocationTemplate
).arg(counter++);
24
}
25
26
KisResourceStorageSP
newStorage(
new
KisResourceStorage
(
storageLocation
,
KisResourceStorage::StorageType::Memory
));
27
KisResourceLocator::instance
()->
addStorage
(
storageLocation
, newStorage);
28
29
m_temporaryStorageLocation
=
storageLocation
;
30
}
31
32
void
KisTemporaryResourceStorageLockAdapter::unlock
()
33
{
34
KIS_SAFE_ASSERT_RECOVER_RETURN
(!
m_temporaryStorageLocation
.isEmpty());
35
KisResourceLocator::instance
()->
removeStorage
(
m_temporaryStorageLocation
);
36
m_temporaryStorageLocation
.clear();
37
}
38
39
QString
KisTemporaryResourceStorageLockAdapter::storageLocation
()
const
40
{
41
return
m_temporaryStorageLocation
;
42
}
KisResourceLocator.h
KisTemporaryResourceStorageLock.h
KisResourceLocator::removeStorage
bool removeStorage(const QString &storageLocation)
removeStorage removes the temporary storage from the database
Definition
KisResourceLocator.cpp:884
KisResourceLocator::addStorage
bool addStorage(const QString &storageLocation, KisResourceStorageSP storage)
addStorage Adds a new resource storage to the database. The storage is will be marked as not pre-inst...
Definition
KisResourceLocator.cpp:835
KisResourceLocator::instance
static KisResourceLocator * instance()
Definition
KisResourceLocator.cpp:79
KisResourceStorage
Definition
KisResourceStorage.h:52
KisResourceStorage::StorageType::Memory
@ Memory
KisTemporaryResourceStorageLockAdapter::m_temporaryStorageLocationTemplate
QString m_temporaryStorageLocationTemplate
Definition
KisTemporaryResourceStorageLock.h:31
KisTemporaryResourceStorageLockAdapter::KisTemporaryResourceStorageLockAdapter
KisTemporaryResourceStorageLockAdapter(const QString &temporaryStorageLocationTemplate)
Definition
KisTemporaryResourceStorageLock.cpp:12
KisTemporaryResourceStorageLockAdapter::lock
void lock()
Definition
KisTemporaryResourceStorageLock.cpp:17
KisTemporaryResourceStorageLockAdapter::m_temporaryStorageLocation
QString m_temporaryStorageLocation
Definition
KisTemporaryResourceStorageLock.h:32
KisTemporaryResourceStorageLockAdapter::unlock
void unlock()
Definition
KisTemporaryResourceStorageLock.cpp:32
KisTemporaryResourceStorageLockAdapter::storageLocation
QString storageLocation() const
Definition
KisTemporaryResourceStorageLock.cpp:39
QSharedPointer< KisResourceStorage >
kis_assert.h
KIS_SAFE_ASSERT_RECOVER_RETURN
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition
kis_assert.h:128
libs
resources
KisTemporaryResourceStorageLock.cpp
Generated at
2026-03-02 02:30:02+01:00
from
Krita
branch
master
, commit
c7c49cc01571fe86bd36eb4c4c4a75e6f481bbea