Mercurial > code
annotate C++/Json.cpp @ 311:ed3cc10761e4
Json:
* Split Json class into several classes
* Add unit tests
* Json is considered usable
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 13 Feb 2015 13:42:21 +0100 |
parents | 777bc3cb665a |
children | ea1a73a7d468 |
rev | line source |
---|---|
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * Json.cpp -- jansson C++11 wrapper |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2013, 2014 David Demelier <markand@malikania.fr> |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include "Json.h" |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
311 | 21 /* -------------------------------------------------------- |
22 * JsonValue implementation | |
23 * -------------------------------------------------------- */ | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
311 | 25 JsonValue::JsonValue(const JsonValue &value) |
26 : m_handle(json_deep_copy(value.m_handle.get()), json_decref) | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 |
311 | 30 JsonValue &JsonValue::operator=(const JsonValue &value) |
31 { | |
32 m_handle = Handle(json_deep_copy(value.m_handle.get()), json_decref); | |
33 } | |
34 | |
35 JsonValue::JsonValue(json_t *json) | |
36 : m_handle(json, json_decref) | |
37 { | |
38 } | |
39 | |
40 JsonValue::JsonValue() | |
41 : m_handle(json_null(), json_decref) | |
42 { | |
43 } | |
44 | |
45 JsonValue::JsonValue(bool value) | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 : m_handle(json_boolean(value), json_decref) |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 |
311 | 50 JsonValue::JsonValue(int value) |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 : m_handle(json_integer(value), json_decref) |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 |
311 | 55 JsonValue::JsonValue(double value) |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 : m_handle(json_real(value), json_decref) |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 |
311 | 60 JsonValue::JsonValue(std::string value) |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 : m_handle(json_string(value.c_str()), json_decref) |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 |
311 | 65 JsonValue::JsonValue(const char *value) |
66 : m_handle(json_string(value), json_decref) | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 |
311 | 70 JsonType JsonValue::typeOf() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 { |
311 | 72 return static_cast<JsonType>(json_typeof(m_handle.get())); |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 |
311 | 75 bool JsonValue::isObject() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 return json_is_object(m_handle.get()) != 0; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 |
311 | 80 bool JsonValue::isArray() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 return json_is_array(m_handle.get()) != 0; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 |
311 | 85 bool JsonValue::isString() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 return json_is_string(m_handle.get()) != 0; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 |
311 | 90 bool JsonValue::isReal() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 return json_is_real(m_handle.get()) != 0; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 |
311 | 95 bool JsonValue::isTrue() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 return json_is_true(m_handle.get()) != 0; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 |
311 | 100 bool JsonValue::isFalse() const |
101 { | |
102 return json_is_false(m_handle.get()) != 0; | |
103 } | |
104 | |
105 bool JsonValue::isNull() const | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 return json_is_null(m_handle.get()) != 0; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 |
311 | 110 bool JsonValue::isNumber() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 return json_is_number(m_handle.get()) != 0; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 |
311 | 115 bool JsonValue::isInteger() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 return json_is_integer(m_handle.get()) != 0; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 |
311 | 120 bool JsonValue::isBoolean() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 return json_is_boolean(m_handle.get()) != 0; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 |
311 | 125 std::string JsonValue::toString() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 auto value = json_string_value(m_handle.get()); |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 return (value == nullptr) ? "" : value; |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 |
311 | 132 int JsonValue::toInteger() const noexcept |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 return json_integer_value(m_handle.get()); |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 |
311 | 137 double JsonValue::toReal() const noexcept |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 return json_real_value(m_handle.get()); |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 |
311 | 142 JsonObject JsonValue::toObject() const |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 { |
311 | 144 json_incref(m_handle.get()); |
145 | |
146 return JsonObject(m_handle.get()); | |
147 } | |
148 | |
149 JsonArray JsonValue::toArray() const | |
150 { | |
151 json_incref(m_handle.get()); | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 |
311 | 153 return JsonArray(m_handle.get()); |
154 } | |
155 | |
156 /* -------------------------------------------------------- | |
157 * JsonArray | |
158 * -------------------------------------------------------- */ | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 |
311 | 160 JsonArray::JsonArray() |
161 : JsonValue(json_array()) | |
162 { | |
163 } | |
164 | |
165 unsigned JsonArray::size() const noexcept | |
166 { | |
167 return json_array_size(m_handle.get()); | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 |
311 | 170 void JsonArray::push(const JsonValue &value) |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 { |
311 | 172 json_array_insert(m_handle.get(), 0, value.m_handle.get()); |
173 } | |
174 | |
175 void JsonArray::append(const JsonValue &value) | |
176 { | |
177 json_array_append(m_handle.get(), value.m_handle.get()); | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 |
311 | 180 void JsonArray::insert(const JsonValue &value, int index) |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
181 { |
311 | 182 json_array_insert(m_handle.get(), index, value.m_handle.get()); |
183 } | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 |
311 | 185 JsonValue JsonArray::operator[](int index) const |
186 { | |
187 if (typeOf() != JsonType::Array) | |
188 throw JsonError("not an array"); | |
189 | |
190 auto value = json_array_get(m_handle.get(), index); | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 |
311 | 192 if (value == nullptr) |
193 throw JsonError("index out of bounds"); | |
194 | |
195 json_incref(value); | |
196 | |
197 return JsonValue(value); | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
198 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
199 |
311 | 200 /* -------------------------------------------------------- |
201 * JsonObject | |
202 * -------------------------------------------------------- */ | |
203 | |
204 JsonObject::JsonObject() | |
205 : JsonValue(json_object()) | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
206 { |
311 | 207 } |
208 | |
209 JsonValue JsonObject::operator[](const std::string &name) const | |
210 { | |
211 if (typeOf() != JsonType::Object) | |
212 throw JsonError("not an object"); | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
213 |
311 | 214 auto value = json_object_get(m_handle.get(), name.c_str()); |
215 | |
216 if (value == nullptr) | |
217 throw JsonError("key " + name + +" not found"); | |
218 | |
219 json_incref(value); | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
220 |
311 | 221 return JsonValue(value); |
222 } | |
223 | |
224 void JsonObject::set(const std::string &key, const JsonValue &value) | |
225 { | |
226 json_object_set(m_handle.get(), key.c_str(), value.m_handle.get()); | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
227 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
228 |
311 | 229 /* -------------------------------------------------------- |
230 * JsonReaderFile | |
231 * -------------------------------------------------------- */ | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
232 |
311 | 233 JsonReaderFile::JsonReaderFile(std::string path) |
234 : m_path(std::move(path)) | |
235 { | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
236 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
237 |
311 | 238 JsonValue JsonReaderFile::read() |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
239 { |
311 | 240 json_error_t error; |
241 json_t *handle = json_load_file(m_path.c_str(), 0, &error); | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
242 |
311 | 243 if (handle == nullptr) |
244 throw JsonError{error}; | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
245 |
311 | 246 return JsonValue(handle); |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
247 } |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
248 |
311 | 249 /* -------------------------------------------------------- |
250 * JsonWriterFile | |
251 * -------------------------------------------------------- */ | |
252 | |
253 JsonWriterFile::JsonWriterFile(std::string path) | |
254 : m_path(std::move(path)) | |
244
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
255 { |
777bc3cb665a
Add Json, a jansson wrapper
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
256 } |
311 | 257 |
258 void JsonWriterFile::write(const JsonValue &value) | |
259 { | |
260 if (json_dump_file(value, m_path.c_str(), 0) < 0) | |
261 throw JsonError("Failed to write file: " + m_path); | |
262 } |