@@ -70,7 +70,6 @@ SEQ_FUNC void seq_sonic_json_document_add_string(
70
70
const char *key, size_t keyLen, const char *value, size_t valueLen) {
71
71
auto key_ = std::string_view (key, keyLen);
72
72
auto value_ = std::string_view (value, valueLen);
73
- logd (" key={} value={}" , key_, value_);
74
73
doc->AddMember (key_, NodeType (value_), *alloc);
75
74
}
76
75
@@ -155,6 +154,69 @@ SEQ_FUNC void seq_sonic_json_document_add_bool_array(
155
154
doc->AddMember (key_, nodeArgs, *alloc);
156
155
}
157
156
157
+ SEQ_FUNC void seq_sonic_json_document_add_node (
158
+ sonic_json::Document *doc, sonic_json::Document::Allocator *alloc,
159
+ const char *key, size_t keyLen, NodeType *node) {
160
+ auto key_ = std::string_view (key, keyLen);
161
+ doc->AddMember (key_, *node, *alloc);
162
+ }
163
+
164
+ SEQ_FUNC NodeType *
165
+ seq_sonic_json_document_find_member (sonic_json::Document *doc,
166
+ sonic_json::Document::Allocator *alloc,
167
+ const char *key, size_t keyLen) {
168
+ auto key_ = std::string_view (key, keyLen);
169
+ auto m = doc->FindMember (key_);
170
+ if (m == doc->MemberEnd ()) {
171
+ return nullptr ;
172
+ } else {
173
+ return &m->value ;
174
+ }
175
+ }
176
+
177
+ SEQ_FUNC NodeType *seq_sonic_json_node_new () {
178
+ auto *node = new NodeType ();
179
+ return node;
180
+ }
181
+
182
+ SEQ_FUNC void seq_sonic_json_node_free (NodeType *node) { delete node; }
183
+
184
+ SEQ_FUNC void seq_sonic_json_node_set_object (NodeType *node) {
185
+ node->SetObject ();
186
+ }
187
+
188
+ SEQ_FUNC void seq_sonic_json_node_add_string (
189
+ NodeType *node, sonic_json::Document::Allocator *alloc, const char *key,
190
+ size_t keyLen, const char *value, size_t valueLen) {
191
+ auto key_ = std::string_view (key, keyLen);
192
+ auto value_ = std::string_view (value, valueLen);
193
+ node->AddMember (key_, NodeType (value_), *alloc);
194
+ }
195
+
196
+ SEQ_FUNC void
197
+ seq_sonic_json_node_add_int (NodeType *node,
198
+ sonic_json::Document::Allocator *alloc,
199
+ const char *key, size_t keyLen, int64_t value) {
200
+ auto key_ = std::string_view (key, keyLen);
201
+ node->AddMember (key_, NodeType (value), *alloc);
202
+ }
203
+
204
+ SEQ_FUNC void
205
+ seq_sonic_json_node_add_double (NodeType *node,
206
+ sonic_json::Document::Allocator *alloc,
207
+ const char *key, size_t keyLen, double value) {
208
+ auto key_ = std::string (key, keyLen);
209
+ node->AddMember (key_, NodeType (value), *alloc);
210
+ }
211
+
212
+ SEQ_FUNC void
213
+ seq_sonic_json_node_add_bool (NodeType *node,
214
+ sonic_json::Document::Allocator *alloc,
215
+ const char *key, size_t keyLen, bool value) {
216
+ auto key_ = std::string_view (key, keyLen);
217
+ node->AddMember (key_, NodeType (value), *alloc);
218
+ }
219
+
158
220
SEQ_FUNC size_t seq_sonic_json_document_to_string (sonic_json::Document *doc,
159
221
char *result) {
160
222
auto s = sonic_json_to_string (doc);
0 commit comments