Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
IGroupPathResolver.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 fuddlesworth
2// SPDX-License-Identifier: LGPL-2.1-or-later
3
4#pragma once
5
6#include <phosphorconfig_export.h>
7
8#include <QJsonObject>
9#include <QString>
10#include <QStringList>
11
12#include <optional>
13
14namespace PhosphorConfig {
15
29class PHOSPHORCONFIG_EXPORT IGroupPathResolver
30{
31public:
32 virtual ~IGroupPathResolver() = default;
33
37 virtual std::optional<QStringList> toJsonPath(const QString& groupName) const = 0;
38
41 virtual QStringList reservedRootKeys() const
42 {
43 return {};
44 }
45
49 virtual QStringList enumerate(const QJsonObject& /*root*/) const
50 {
51 return {};
52 }
53
54protected:
55 IGroupPathResolver() = default;
56};
57
58} // namespace PhosphorConfig
Optional plug-in for custom group name semantics.
Definition IGroupPathResolver.h:30
virtual QStringList reservedRootKeys() const
Extra top-level JSON keys that this resolver owns.
Definition IGroupPathResolver.h:41
virtual std::optional< QStringList > toJsonPath(const QString &groupName) const =0
Map an external group name to its JSON path segments.
virtual QStringList enumerate(const QJsonObject &) const
Enumerate every external group name currently represented in the backing JSON document under this res...
Definition IGroupPathResolver.h:49
virtual ~IGroupPathResolver()=default
Definition IBackend.h:19