TrinityCore
InstanceScriptData.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef InstanceScriptData_h__
19#define InstanceScriptData_h__
20
21#include "Errors.h" // rapidjson depends on WPAssert
22#include <rapidjson/document.h>
23#include <string>
24
25class InstanceScript;
28
30{
31public:
32 enum class Result
33 {
34 Ok,
35 MalformedJson,
36 RootIsNotAnObject,
37 MissingHeader,
38 UnexpectedHeader,
39 MissingBossStates,
40 BossStatesIsNotAnObject,
41 UnknownBoss,
42 BossStateIsNotAnObject,
43 MissingBossState,
44 BossStateValueIsNotANumber,
45 AdditionalDataIsNotAnObject,
46 AdditionalDataUnexpectedValueType
47 };
48
50
51 Result Load(char const* data);
52
53private:
57
58 // logging helpers
59 uint32 GetInstanceId() const;
60 uint32 GetMapId() const;
61 char const* GetMapName() const;
62 uint32 GetDifficultyId() const;
63 char const* GetDifficultyName() const;
64
66 rapidjson::Document _doc;
67};
68
70{
71public:
73
74 std::string GetString();
75 void FillData(bool withValues = true);
76 void FillDataFrom(std::string const& data);
77
80
81private:
83 rapidjson::Document _doc;
84};
85
86#endif // InstanceScriptData_h__
uint32_t uint32
Definition: Define.h:142
char const * GetDifficultyName() const
rapidjson::Document _doc
Result Load(char const *data)
char const * GetMapName() const
InstanceScriptDataReader(InstanceScript &instance)
void SetAdditionalData(UpdateAdditionalSaveDataEvent const &data)
void FillDataFrom(std::string const &data)
void FillData(bool withValues=true)
InstanceScriptDataWriter(InstanceScript &instance)
void SetBossState(UpdateBossStateSaveDataEvent const &data)
rapidjson::Document _doc