summaryrefslogtreecommitdiff
path: root/src/cbor_wrapper/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/cbor_wrapper/include')
-rw-r--r--src/cbor_wrapper/include/cbor_decoder.hpp113
-rw-r--r--src/cbor_wrapper/include/cbor_encoder.hpp52
2 files changed, 0 insertions, 165 deletions
diff --git a/src/cbor_wrapper/include/cbor_decoder.hpp b/src/cbor_wrapper/include/cbor_decoder.hpp
deleted file mode 100644
index 193e7843..00000000
--- a/src/cbor_wrapper/include/cbor_decoder.hpp
+++ /dev/null
@@ -1,113 +0,0 @@
-#pragma once
-
-#include <stdint.h>
-
-#include <cstdint>
-#include <string>
-
-#include "cbor.h"
-#include "result.hpp"
-
-namespace cbor {
-
-class ArrayDecoder {
- public:
- static auto Create(uint8_t* buffer, size_t buffer_len)
- -> cpp::result<std::unique_ptr<ArrayDecoder>, CborError>;
-
- static auto Create(CborValue& root)
- -> cpp::result<std::unique_ptr<ArrayDecoder>, CborError>;
-
- ArrayDecoder() {}
-
- template <typename T>
- auto NextValue() -> cpp::result<T, CborError>;
-
- template <typename T>
- auto NextValue(bool (*is_valid)(const CborValue*),
- CborError (*parse)(const CborValue*, T*))
- -> cpp::result<T, CborError> {
- if (error_ != CborNoError) {
- return cpp::fail(error_);
- }
- if (!is_valid(&it_)) {
- error_ = CborErrorIllegalType;
- return cpp::fail(error_);
- }
- T ret;
- error_ = parse(&it_, &ret);
- if (error_ != CborNoError) {
- return cpp::fail(error_);
- }
- error_ = cbor_value_advance(&it_);
- if (error_ != CborNoError) {
- return cpp::fail(error_);
- }
- return ret;
- }
-
- auto Failed() -> CborError { return error_; }
-
- auto Iterator() -> CborValue& { return it_; }
-
- ArrayDecoder(const ArrayDecoder&) = delete;
- ArrayDecoder& operator=(const ArrayDecoder&) = delete;
-
- private:
- CborParser parser_;
- CborValue root_;
-
- CborValue it_;
- CborError error_ = CborNoError;
-};
-
-class MapDecoder {
- public:
- static auto Create(uint8_t* buffer, size_t buffer_len)
- -> cpp::result<std::unique_ptr<MapDecoder>, CborError>;
-
- static auto Create(CborValue& root)
- -> cpp::result<std::unique_ptr<MapDecoder>, CborError>;
-
- MapDecoder() {}
-
- template <typename T>
- auto FindValue(const std::string& key) -> std::optional<T>;
-
- template <typename T>
- auto FindValue(const std::string& key,
- bool (*is_valid)(const CborValue*),
- CborError (*parse)(const CborValue*, T*)) -> std::optional<T> {
- if (error_ != CborNoError) {
- return {};
- }
- CborValue val;
- if (cbor_value_map_find_value(&it_, key.c_str(), &val) != CborNoError) {
- return {};
- }
- if (!is_valid(&val)) {
- error_ = CborErrorIllegalType;
- return {};
- }
- T ret;
- error_ = parse(&val, &ret);
- if (error_ != CborNoError) {
- return {};
- }
- return ret;
- }
-
- auto Failed() -> CborError { return error_; }
-
- MapDecoder(const MapDecoder&) = delete;
- MapDecoder& operator=(const MapDecoder&) = delete;
-
- private:
- CborParser parser_;
- CborValue root_;
-
- CborValue it_;
- CborError error_ = CborNoError;
-};
-
-} // namespace cbor
diff --git a/src/cbor_wrapper/include/cbor_encoder.hpp b/src/cbor_wrapper/include/cbor_encoder.hpp
deleted file mode 100644
index cc57e8a4..00000000
--- a/src/cbor_wrapper/include/cbor_encoder.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#pragma once
-
-#include <cstdint>
-#include <optional>
-#include <string>
-
-#include "cbor.h"
-#include "result.hpp"
-
-namespace cbor {
-
-enum ContainerType { CONTAINER_ARRAY, CONTAINER_MAP };
-
-class Encoder {
- public:
- Encoder(ContainerType type,
- uint32_t container_len,
- uint8_t* buffer,
- size_t buffer_len);
-
- auto WriteValue(const std::string& val) -> void;
- auto WriteValue(uint32_t val) -> void;
- auto WriteValue(int32_t val) -> void;
-
- template <typename T>
- auto WriteKeyValue(const std::string& key, const T&& val) -> void {
- WriteValue(key);
- WriteValue(val);
- }
-
- template <typename T>
- auto WriteKeyValue(const std::string& key, const std::optional<T>& val)
- -> void {
- if (val) {
- WriteKeyValue<T>(key, val.value());
- }
- }
-
- auto Finish() -> cpp::result<size_t, CborError>;
-
- Encoder(const Encoder&) = delete;
- Encoder& operator=(const Encoder&) = delete;
-
- private:
- uint8_t* buffer_;
- CborEncoder root_encoder_;
- CborEncoder container_encoder_;
-
- CborError error_ = CborNoError;
-};
-
-} // namespace cbor