Merge pull request #24470 from fuzzard/release_20.3
[xbmc.git] / xbmc / settings / SettingsValueXmlSerializer.h
blob010c03677530ab51bb01b9db345d98226fffdffb
1 /*
2 * Copyright (C) 2019 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #pragma once
11 #include "settings/lib/ISettingsValueSerializer.h"
13 #include <memory>
15 class CSetting;
16 class CSettingCategory;
17 class CSettingGroup;
18 class CSettingSection;
19 class TiXmlNode;
21 class CSettingsValueXmlSerializer : public ISettingsValueSerializer
23 public:
24 CSettingsValueXmlSerializer() = default;
25 ~CSettingsValueXmlSerializer() = default;
27 // implementation of ISettingsValueSerializer
28 std::string SerializeValues(const CSettingsManager* settingsManager) const override;
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;