MongoDB C++ Driver mongocxx-3.10.1
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/validate-fwd.hpp>
21
22#include <bsoncxx/document/view.hpp>
23#include <bsoncxx/stdx/optional.hpp>
24
25#include <bsoncxx/config/prelude.hpp>
26
27namespace bsoncxx {
28namespace v_noabi {
29
44BSONCXX_API stdx::optional<document::view> BSONCXX_CALL validate(const std::uint8_t* data,
45 std::size_t length);
46
67BSONCXX_API stdx::optional<document::view> BSONCXX_CALL
68validate(const std::uint8_t* data,
69 std::size_t length,
70 const validator& validator,
71 std::size_t* invalid_offset = nullptr);
72
77class validator {
78 public:
83
88
96
102 bool check_utf8() const;
103
113
122
130
137 bool check_dollar_keys() const;
138
146
153 bool check_dot_keys() const;
154
155 private:
156 struct BSONCXX_PRIVATE impl;
157 std::unique_ptr<impl> _impl;
158};
159
160} // namespace v_noabi
161} // namespace bsoncxx
162
163namespace bsoncxx {
164
165using ::bsoncxx::v_noabi::validate;
166
167} // namespace bsoncxx
168
169#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:77
bool check_dollar_keys() const
Getter for the current check_dollar_keys value of the underlying validator.
validator()
Constructs a validator.
void check_dot_keys(bool check_dot_keys)
Verifies that document keys do not contain any '.
~validator()
Destructs a validator.
bool check_dot_keys() const
Getter for the current check_dot_keys value of the underlying validator.
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_utf8(bool check_utf8)
Verify that all keys and string values are valid UTF-8.
bool check_utf8_allow_null() const
Getter for the current check_utf8_allow_null value of the underlying validator.
void check_dollar_keys(bool check_dollar_keys)
Verifies that document keys are not preceeded with '$'.
bool check_utf8() const
Getter for the current check_utf8 value of the underlying validator.
stdx::optional< document::view > validate(const std::uint8_t *data, std::size_t length)
Validates a BSON document.
The top-level namespace for bsoncxx library entities.
Definition element-fwd.hpp:19