MongoDB C++ Driver mongocxx-3.0.3
Loading...
Searching...
No Matches
validate.hpp
1// Copyright 2015 MongoDB Inc.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#pragma once
16
17#include <cstdint>
18#include <memory>
19
20#include <bsoncxx/document/view.hpp>
21#include <bsoncxx/stdx/optional.hpp>
22
23#include <bsoncxx/config/prelude.hpp>
24
25namespace bsoncxx {
26BSONCXX_INLINE_NAMESPACE_BEGIN
27
28class validator;
29
44BSONCXX_API stdx::optional<document::view> BSONCXX_CALL
45validate(const std::uint8_t* data, std::size_t length);
46
67BSONCXX_API stdx::optional<document::view> BSONCXX_CALL
68validate(const std::uint8_t* data, std::size_t length, const validator& validator,
69 std::size_t* invalid_offset = nullptr);
74class BSONCXX_API validator {
75 public:
80
85
92 void check_utf8(bool check_utf8);
93
99 bool check_utf8() const;
100
109 void check_utf8_allow_null(bool check_utf8_allow_null);
110
119
127 void check_dollar_keys(bool check_dollar_keys);
128
135 bool check_dollar_keys() const;
136
144 void check_dot_keys(bool check_dot_keys);
145
152 bool check_dot_keys() const;
153
154 private:
155 struct BSONCXX_PRIVATE impl;
156 std::unique_ptr<impl> _impl;
157};
158
159BSONCXX_INLINE_NAMESPACE_END
160} // namespace bsoncxx
161
162#include <bsoncxx/config/postlude.hpp>
A validator is used to enable or disable specific checks that can be performed during BSON validation...
Definition validate.hpp:74
~validator()
Destructs a validator.
bool check_utf8() const
Getter for the current check_utf8 value of the underlying validator.
bool check_utf8_allow_null() const
Getter for the current check_utf8_allow_null value of the underlying validator.
void check_utf8(bool check_utf8)
Verify that all keys and string values are valid UTF-8.
void check_utf8_allow_null(bool check_utf8_allow_null)
Verify that all keys and string values are valid UTF-8, but allow null bytes.
void check_dollar_keys(bool check_dollar_keys)
Verifies that document keys are not preceeded with '$'.
validator()
Constructs a validator.
bool check_dot_keys() const
Getter for the current check_dot_keys value of the underlying validator.
void check_dot_keys(bool check_dot_keys)
Verifies that document keys do not contain any '.
bool check_dollar_keys() const
Getter for the current check_dollar_keys value of the underlying validator.