kodi
SettingsValueXmlSerializer.h
1 /*
2  * Copyright (C) 2019 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "settings/lib/ISettingsValueSerializer.h"
12 
13 #include <memory>
14 
15 class CSetting;
16 class CSettingCategory;
17 class CSettingGroup;
18 class CSettingSection;
19 class TiXmlNode;
20 
22 {
23 public:
24  CSettingsValueXmlSerializer() = default;
25  ~CSettingsValueXmlSerializer() = default;
26 
27  // implementation of ISettingsValueSerializer
28  std::string SerializeValues(const CSettingsManager* settingsManager) const override;
29 
30 private:
31  void SerializeSection(TiXmlNode* parent, const std::shared_ptr<CSettingSection>& section) const;
32  void SerializeCategory(TiXmlNode* parent,
33  const std::shared_ptr<CSettingCategory>& category) const;
34  void SerializeGroup(TiXmlNode* parent, const std::shared_ptr<CSettingGroup>& group) const;
35  void SerializeSetting(TiXmlNode* parent, const std::shared_ptr<CSetting>& setting) const;
36 };
Category of groups of settings being part of a section.
Definition: SettingSection.h:93
Setting base class containing all the properties which are common to all settings independent of the ...
Definition: Setting.h:46
Section of setting categories.
Definition: SettingSection.h:152
Definition: SettingsValueXmlSerializer.h:21
Definition: ISettingsValueSerializer.h:15
Definition: SmartPlayList.cpp:137
Settings manager responsible for initializing, loading and handling all settings. ...
Definition: SettingsManager.h:41
Group of settings being part of a category.
Definition: SettingSection.h:28