summaryrefslogtreecommitdiff
path: root/c++/codec-json/json.h
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2023-12-04 12:18:14 +0100
committerClaudius "keldu" Holeksa <mail@keldu.de>2023-12-04 12:18:14 +0100
commita14896f9ed209dd3f9597722e5a5697bd7dbf531 (patch)
tree089ca5cbbd206d1921f8f6b53292f5bc1902ca5c /c++/codec-json/json.h
parent84ecdcbca9e55b1f57fbb832e12ff4fdbb86e7c9 (diff)
meta: Renamed folder containing source
Diffstat (limited to 'c++/codec-json/json.h')
-rw-r--r--c++/codec-json/json.h120
1 files changed, 0 insertions, 120 deletions
diff --git a/c++/codec-json/json.h b/c++/codec-json/json.h
deleted file mode 100644
index 56cadc0..0000000
--- a/c++/codec-json/json.h
+++ /dev/null
@@ -1,120 +0,0 @@
-#pragma once
-
-#include <forstio/core/buffer.h>
-#include <forstio/core/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 {};
- }
-};
-}
-