Couchbase C++ SDK
1.4.0 (rev. 59aa900)
Toggle main menu visibility
Loading...
Searching...
No Matches
lenient_json_transcoder.hxx
Go to the documentation of this file.
1
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
/*
3
* Copyright 2020-Present Couchbase, Inc.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#pragma once
19
20
#include <
couchbase/codec/codec_flags.hxx
>
21
#include <
couchbase/codec/encoded_value.hxx
>
22
#include <
couchbase/codec/transcoder_traits.hxx
>
23
24
namespace
couchbase::codec
25
{
26
class
tao_json_serializer
;
27
45
template
<
typename
Serializer>
46
class
lenient_json_transcoder
47
{
48
public
:
49
template
<
typename
Document>
50
static
auto
encode
(Document document) ->
encoded_value
51
{
52
return
{ Serializer::serialize(document),
codec_flags::json_common_flags
};
53
}
54
55
template
<
typename
Document>
56
static
auto
decode
(
const
encoded_value
& encoded) -> Document
57
{
58
return
Serializer::template deserialize<Document>(encoded.data);
59
}
60
};
61
62
using
default_lenient_json_transcoder
=
lenient_json_transcoder<tao_json_serializer>
;
63
64
#ifndef COUCHBASE_CXX_CLIENT_DOXYGEN
65
template
<>
66
struct
is_transcoder
<
default_lenient_json_transcoder
> :
public
std::true_type {
67
};
68
#endif
69
}
// namespace couchbase::codec
couchbase::codec::lenient_json_transcoder
A JSON transcoder that encodes with JSON common flags like json_transcoder, but does NOT validate the...
Definition
lenient_json_transcoder.hxx:47
couchbase::codec::lenient_json_transcoder::decode
static auto decode(const encoded_value &encoded) -> Document
Definition
lenient_json_transcoder.hxx:56
couchbase::codec::lenient_json_transcoder::encode
static auto encode(Document document) -> encoded_value
Definition
lenient_json_transcoder.hxx:50
couchbase::codec::tao_json_serializer
Definition
tao_json_serializer.hxx:42
codec_flags.hxx
encoded_value.hxx
couchbase::codec::codec_flags::json_common_flags
constexpr std::uint32_t json_common_flags
Definition
codec_flags.hxx:145
couchbase::codec
Definition
analytics_options.hxx:36
couchbase::codec::default_lenient_json_transcoder
lenient_json_transcoder< tao_json_serializer > default_lenient_json_transcoder
Definition
lenient_json_transcoder.hxx:62
couchbase::codec::encoded_value
Definition
encoded_value.hxx:27
couchbase::codec::is_transcoder
Definition
transcoder_traits.hxx:25
transcoder_traits.hxx
couchbase
codec
lenient_json_transcoder.hxx
Generated by
1.17.0