summaryrefslogtreecommitdiff
path: root/modules/codec-json/json.h
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2024-01-16 15:26:22 +0100
committerClaudius "keldu" Holeksa <mail@keldu.de>2024-01-16 15:26:22 +0100
commitb155dff8b068dc87d22eefd07150a681790247b8 (patch)
tree22e20f2593622c5ef10a43d59d257fa5bc9e5ea5 /modules/codec-json/json.h
parentca5063213282287061184263ce7e08d10f60dce9 (diff)
codec-json: Moving to new directory structure
Diffstat (limited to 'modules/codec-json/json.h')
-rw-r--r--modules/codec-json/json.h120
1 files changed, 0 insertions, 120 deletions
diff --git a/modules/codec-json/json.h b/modules/codec-json/json.h
deleted file mode 100644
index bc60ee9..0000000
--- a/modules/codec-json/json.h
+++ /dev/null
@@ -1,120 +0,0 @@
-#pragma once
-
-#include <forstio/buffer.h>
-#include <forstio/common.h>
-#include <forstio/codec/data.h>
-
-#include <algorithm>
-
-namespace saw {
-namespace encode {
-struct Json {};
-}
-
-template<typename Schema>
-class data<Schema, encode::Json> {
-private:
- ring_buffer buffer_;
-public:
- data():buffer_{}{}
-
- data(std::size_t ring_size_):buffer_{ring_size_}{}
-
- data(ring_buffer buff_):
- buffer_{std::move(buff_)}
- {}
-
- data(const std::string_view& view__):
- buffer_{view__.size()}
- {
- auto ptr = reinterpret_cast<const uint8_t*>(view__.data());
- if(!ptr){
- return;
- }
- buffer_.push(*ptr, view__.size());
- }
-
- buffer& get_buffer(){
- return buffer_;
- }
-
- const buffer& get_buffer() const {
- return buffer_;
- }
-
- error push(uint8_t val){
- return buffer_.push(val);
- }
-
- std::size_t get_size() const {
- return buffer_.read_composite_length();
- }
-
- uint8_t& at(std::size_t i){
- return buffer_.read(i);
- }
-
- const uint8_t& at(std::size_t i) const {
- return buffer_.read(i);
- }
-};
-}
-
-#include "json.tmpl.h"
-
-namespace saw {
-
-/**
- * Codec class for json
- */
-template<typename Schema>
-class codec<Schema, encode::Json> {
-public:
- struct config {
- size_t depth = 16;
- size_t length = 1024;
- };
-private:
- config cfg_;
-public:
- /**
- * Default constructor
- */
- codec(){}
-
- /**
- * Constructor
- */
- codec(config cfg__):cfg_{std::move(cfg__)}{}
-
- SAW_FORBID_COPY(codec);
- SAW_DEFAULT_MOVE(codec);
-
- template <typename FromEncoding>
- error_or<void> encode(const data<Schema, FromEncoding>& from_encode, data<Schema, encode::Json>& to_encode){
- // To Be encoded
- buffer_view buff_v{to_encode.get_buffer()};
- auto eov = impl::json_encode<Schema, Schema, FromEncoding>::encode(from_encode, buff_v);
- if(eov.is_error()){
- return std::move(eov.get_error());
- }
- to_encode.get_buffer().write_advance(buff_v.write_offset());
-
- return void_t{};
- }
-
- template <typename ToEncoding>
- error_or<void> decode(data<Schema, encode::Json>& from_decode, data<Schema, ToEncoding>& to_decode){
- buffer_view buff_v{from_decode.get_buffer()};
-
- auto eov = impl::json_decode<Schema, Schema, ToEncoding>::decode(buff_v, to_decode);
- if(eov.is_error()){
- return std::move(eov.get_error());
- }
- from_decode.get_buffer().read_advance(buff_v.read_offset());
-
- return void_t {};
- }
-};
-}
-