MongoDB C++ Driver mongocxx-3.6.7
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 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);
76class BSONCXX_API validator {
77 public:
82
87
94 void check_utf8(bool check_utf8);
95
101 bool check_utf8() const;
102
111 void check_utf8_allow_null(bool check_utf8_allow_null);
112
121
129 void check_dollar_keys(bool check_dollar_keys);
130
137 bool check_dollar_keys() const;
138
146 void check_dot_keys(bool check_dot_keys);
147
154 bool check_dot_keys() const;
155
156 private:
157 struct BSONCXX_PRIVATE impl;
158 std::unique_ptr<impl> _impl;
159};
160
161BSONCXX_INLINE_NAMESPACE_END
162} // namespace bsoncxx
163
164#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:76
~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.
Top level namespace for MongoDB C++ BSON functionality.
Definition: element.hpp:24
stdx::optional< document::view > validate(const std::uint8_t *data, std::size_t length)
Validates a BSON document.