AnCH Framework 0.1
Another C++ Hack Framework
Loading...
Searching...
No Matches
primitiveMapper.hpp
1/*
2 ANCH Framework: ANother C++ Hack is a C++ framework based on C++11 standard
3 Copyright (C) 2020 Vincent Lachenal
4
5 This file is part of ANCH Framework.
6
7 ANCH Framework is free software: you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 ANCH Framework is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with ANCH Framework. If not, see <http://www.gnu.org/licenses/>.
19*/
20#pragma once
21
22#include <string>
23#include <vector>
24#include <map>
25#include <ostream>
26#include <functional>
27#include <list>
28#include <set>
29#include <map>
30
31#include "json/genericMapper.hpp"
32#include "json/constants.hpp"
33#include "json/mappingOptions.hpp"
34
35
36namespace anch::json {
37
38 // JSON mapper early declaration
39 template<typename T>
40 class Factory;
41
53 template<typename T>
54 class PrimitiveMapper: public anch::json::GenericMapper<PrimitiveMapper<T>, T> {
56
57 // Constructors +
58 private:
62 PrimitiveMapper();
63
64 public:
70 PrimitiveMapper(const PrimitiveMapper& other) = delete;
71
77 PrimitiveMapper(PrimitiveMapper&& other) = delete;
78 // Constructors -
79
80 // Destructor +
81 private:
85 virtual ~PrimitiveMapper();
86 // Destructor -
87
88 // Methods +
89 public:
96 void serializeValue(const T& value, anch::json::WriterContext& context) const;
97
106 bool deserializeValue(T& value, anch::json::ReaderContext& context) const;
107 // Methods -
108
109 };
110
111} // anch::json
JSON mapper factory.
Definition factory.hpp:52
Generic mapper.
Definition genericMapper.hpp:49
bool deserializeValue(T &value, anch::json::ReaderContext &context) const
void serializeValue(const T &value, anch::json::WriterContext &context) const
PrimitiveMapper(PrimitiveMapper &&other)=delete
PrimitiveMapper(const PrimitiveMapper &other)=delete
JSON reader context.
Definition readerContext.hpp:42
JSON writer context.
Definition writerContext.hpp:41
JSON namespace.
Definition constants.hpp:25