|
1 | | -#include "rfl/cbor/Writer.hpp" |
| 1 | +#include "rfl/avro/Writer.hpp" |
2 | 2 |
|
3 | | -namespace rfl::cbor { |
| 3 | +namespace rfl::avro { |
4 | 4 |
|
5 | | -Writer::Writer(CborEncoder* _encoder) : encoder_(_encoder) {} |
| 5 | +Writer::Writer() {} |
6 | 6 |
|
7 | 7 | Writer::~Writer() = default; |
8 | 8 |
|
9 | 9 | Writer::OutputArrayType Writer::array_as_root( |
10 | 10 | const size_t _size) const noexcept { |
11 | | - return new_array(_size, encoder_); |
| 11 | + return OutputArrayType{*root_}; |
12 | 12 | } |
13 | 13 |
|
14 | 14 | Writer::OutputObjectType Writer::object_as_root( |
15 | 15 | const size_t _size) const noexcept { |
16 | | - return new_object(_size, encoder_); |
| 16 | + return OutputObjectType{*root_}; |
17 | 17 | } |
18 | 18 |
|
19 | 19 | Writer::OutputVarType Writer::null_as_root() const noexcept { |
20 | | - cbor_encode_null(encoder_); |
21 | | - return OutputVarType{}; |
| 20 | + avro_value_set_null(root_); |
| 21 | + return OutputVarType{*root_}; |
22 | 22 | } |
23 | 23 |
|
24 | 24 | Writer::OutputArrayType Writer::add_array_to_array( |
25 | 25 | const size_t _size, OutputArrayType* _parent) const noexcept { |
26 | | - return new_array(_size, _parent->encoder_); |
| 26 | + avro_value_t new_array; |
| 27 | + avro_value_append(&_parent->val_, &new_array, nullptr); |
| 28 | + return OutputArrayType{new_array}; |
27 | 29 | } |
28 | 30 |
|
29 | 31 | Writer::OutputArrayType Writer::add_array_to_object( |
30 | 32 | const std::string_view& _name, const size_t _size, |
31 | 33 | OutputObjectType* _parent) const noexcept { |
32 | | - cbor_encode_text_string(_parent->encoder_, _name.data(), _name.size()); |
33 | | - return new_array(_size, _parent->encoder_); |
| 34 | + avro_value_t new_array; |
| 35 | + avro_value_get_by_name(&_parent->val_, _name.c_str(), &new_array, nullptr); |
| 36 | + return OutputArrayType{new_array}; |
34 | 37 | } |
35 | 38 |
|
36 | 39 | Writer::OutputObjectType Writer::add_object_to_array( |
37 | 40 | const size_t _size, OutputArrayType* _parent) const noexcept { |
38 | | - return new_object(_size, _parent->encoder_); |
| 41 | + avro_value_t new_object; |
| 42 | + avro_value_append(&_parent->val_, &new_object, nullptr); |
| 43 | + return OutputArrayType{new_object}; |
39 | 44 | } |
40 | 45 |
|
41 | 46 | Writer::OutputObjectType Writer::add_object_to_object( |
42 | 47 | const std::string_view& _name, const size_t _size, |
43 | 48 | OutputObjectType* _parent) const noexcept { |
44 | | - cbor_encode_text_string(_parent->encoder_, _name.data(), _name.size()); |
45 | | - return new_object(_size, _parent->encoder_); |
| 49 | + avro_value_t new_object; |
| 50 | + avro_value_get_by_name(&_parent->val_, _name.c_str(), &new_object, nullptr); |
| 51 | + return OutputObjectType{new_object}; |
46 | 52 | } |
47 | 53 |
|
48 | 54 | Writer::OutputVarType Writer::add_null_to_array( |
49 | 55 | OutputArrayType* _parent) const noexcept { |
50 | | - cbor_encode_null(_parent->encoder_); |
51 | | - return OutputVarType{}; |
| 56 | + avro_value_t new_null; |
| 57 | + avro_value_append(&_parent->val_, &new_null, nullptr); |
| 58 | + avro_value_set_null(&new_null); |
| 59 | + return OutputArrayType{new_object}; |
52 | 60 | } |
53 | 61 |
|
54 | 62 | Writer::OutputVarType Writer::add_null_to_object( |
55 | 63 | const std::string_view& _name, OutputObjectType* _parent) const noexcept { |
56 | | - cbor_encode_text_string(_parent->encoder_, _name.data(), _name.size()); |
57 | | - cbor_encode_null(_parent->encoder_); |
58 | | - return OutputVarType{}; |
| 64 | + avro_value_t new_null; |
| 65 | + avro_value_get_by_name(&_parent->val_, _name.c_str(), &new_object, nullptr); |
| 66 | + avro_value_set_null(&new_null); |
| 67 | + return OutputVarType{new_null}; |
59 | 68 | } |
60 | 69 |
|
61 | | -void Writer::end_array(OutputArrayType* _arr) const noexcept { |
62 | | - cbor_encoder_close_container(_arr->parent_, _arr->encoder_); |
63 | | -} |
64 | | - |
65 | | -void Writer::end_object(OutputObjectType* _obj) const noexcept { |
66 | | - cbor_encoder_close_container(_obj->parent_, _obj->encoder_); |
67 | | -} |
| 70 | +void Writer::end_array(OutputArrayType* _arr) const noexcept {} |
68 | 71 |
|
69 | | -Writer::OutputArrayType Writer::new_array(const size_t _size, |
70 | | - CborEncoder* _parent) const noexcept { |
71 | | - subencoders_->emplace_back(rfl::Box<CborEncoder>::make()); |
72 | | - cbor_encoder_create_array(_parent, subencoders_->back().get(), _size); |
73 | | - return OutputArrayType{subencoders_->back().get(), _parent}; |
74 | | -} |
75 | | - |
76 | | -Writer::OutputObjectType Writer::new_object( |
77 | | - const size_t _size, CborEncoder* _parent) const noexcept { |
78 | | - subencoders_->emplace_back(rfl::Box<CborEncoder>::make()); |
79 | | - cbor_encoder_create_map(_parent, subencoders_->back().get(), _size); |
80 | | - return OutputObjectType{subencoders_->back().get(), _parent}; |
81 | | -} |
| 72 | +void Writer::end_object(OutputObjectType* _obj) const noexcept {} |
82 | 73 |
|
83 | | -} // namespace rfl::cbor |
| 74 | +} // namespace rfl::avro |
0 commit comments