Skip to content

Commit 1457c1d

Browse files
authored
Move Doxygen dir+ns+pages documentation into docs subdirectory (#1316)
* Move doc.hpp headers into into docs subdirectory * Move v_noabi documentation into docs/v_noabi.hpp * Add documentation for docs subdirectories * Move topic page documentation into topics.hpp
1 parent 05466d8 commit 1457c1d

File tree

12 files changed

+453
-345
lines changed

12 files changed

+453
-345
lines changed

src/bsoncxx/include/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
1717
COMPONENT dev
1818
FILES_MATCHING
1919
PATTERN "*.hpp"
20-
PATTERN "bsoncxx/doc.hpp" EXCLUDE
20+
PATTERN "bsoncxx/docs/*" EXCLUDE
21+
PATTERN "bsoncxx/docs" EXCLUDE
2122
)
2223

2324
file(GLOB_RECURSE bsoncxx_include_headers
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
// Copyright 2009-present 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+
#if !defined(BSONCXX_PRIVATE_DOXYGEN_PREPROCESSOR)
16+
#error "This file is for documentation purposes only. It should not be included."
17+
#endif // !defined(BSONCXX_PRIVATE_DOXYGEN_PREPROCESSOR)
18+
19+
///
20+
/// @file
21+
/// For documentation purposes only.
22+
///
23+
/// @note This header is not includable!
24+
///
25+
26+
///
27+
/// @dir include/bsoncxx
28+
/// Provides headers declaring entities in @ref bsoncxx
29+
///
30+
31+
///
32+
/// @dir include/bsoncxx/docs
33+
/// For documentation purposes only.
34+
///
35+
36+
///
37+
/// @namespace bsoncxx
38+
/// The top-level namespace within which all bsoncxx library entities are declared.
39+
///
40+
/// In addition to declaring ABI namespaces (`v_noabi`, `v1`, etc.), this namespace also provides
41+
/// "redeclarations" of entities within ABI namespaces. These redeclarations are intended to be the
42+
/// preferred method for using bsoncxx library entities when ABI stability of the bsoncxx library is
43+
/// NOT a requirement by the user. See [Root Namespace
44+
/// Redeclarations](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/api-abi-versioning/abi-versioning/#std-label-cpp-abi-root-namespace-redec).
45+
///
46+
47+
///
48+
/// @namespace bsoncxx::array
49+
/// Declares entities representing a BSON array.
50+
///
51+
52+
///
53+
/// @namespace bsoncxx::builder
54+
/// Declares entities used to build BSON documents.
55+
///
56+
57+
///
58+
/// @namespace bsoncxx::builder::basic
59+
/// Declares entities used with "basic" BSON builder syntax.
60+
///
61+
62+
///
63+
/// @namespace bsoncxx::builder::stream
64+
/// Declares entities used with "streaming" BSON builder syntax.
65+
///
66+
67+
///
68+
/// @namespace bsoncxx::document
69+
/// Declares entities representing a BSON document.
70+
///
71+
72+
///
73+
/// @namespace bsoncxx::stdx
74+
/// Declares C++17 standard library polyfills.
75+
///
76+
77+
///
78+
/// @namespace bsoncxx::string
79+
/// Declares entities related to handling string types.
80+
///
81+
82+
///
83+
/// @namespace bsoncxx::types
84+
/// Declares entities representing BSON value types.
85+
///
86+
87+
///
88+
/// @namespace bsoncxx::types::bson_value
89+
/// Declares entities representing any BSON value type.
90+
///

src/bsoncxx/include/bsoncxx/doc.hpp renamed to src/bsoncxx/include/bsoncxx/docs/topics.hpp

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -23,67 +23,6 @@
2323
/// @note This header is not includable!
2424
///
2525

26-
///
27-
/// @dir include/bsoncxx
28-
/// Provides headers declaring entities in @ref bsoncxx
29-
///
30-
31-
///
32-
/// @namespace bsoncxx
33-
/// The top-level namespace within which all bsoncxx library entities are declared.
34-
///
35-
/// In addition to declaring ABI namespaces (`v_noabi`, `v1`, etc.), this namespace also provides
36-
/// "redeclarations" of entities within ABI namespaces. These redeclarations are intended to be the
37-
/// preferred method for using bsoncxx library entities when ABI stability of the bsoncxx library is
38-
/// NOT a requirement by the user. See [Root Namespace
39-
/// Redeclarations](https://www.mongodb.com/docs/languages/cpp/cpp-driver/current/api-abi-versioning/abi-versioning/#std-label-cpp-abi-root-namespace-redec).
40-
///
41-
42-
///
43-
/// @namespace bsoncxx::array
44-
/// Declares entities representing a BSON array.
45-
///
46-
47-
///
48-
/// @namespace bsoncxx::builder
49-
/// Declares entities used to build BSON documents.
50-
///
51-
52-
///
53-
/// @namespace bsoncxx::builder::basic
54-
/// Declares entities used with "basic" BSON builder syntax.
55-
///
56-
57-
///
58-
/// @namespace bsoncxx::builder::stream
59-
/// Declares entities used with "streaming" BSON builder syntax.
60-
///
61-
62-
///
63-
/// @namespace bsoncxx::document
64-
/// Declares entities representing a BSON document.
65-
///
66-
67-
///
68-
/// @namespace bsoncxx::stdx
69-
/// Declares C++17 standard library polyfills.
70-
///
71-
72-
///
73-
/// @namespace bsoncxx::string
74-
/// Declares entities related to handling string types.
75-
///
76-
77-
///
78-
/// @namespace bsoncxx::types
79-
/// Declares entities representing BSON value types.
80-
///
81-
82-
///
83-
/// @namespace bsoncxx::types::bson_value
84-
/// Declares entities representing any BSON value type.
85-
///
86-
8726
///
8827
/// @page topic-bsoncxx The bsoncxx Library
8928
/// @brief Topics relating to the bsoncxx library.
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
// Copyright 2009-present 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+
#if !defined(BSONCXX_PRIVATE_DOXYGEN_PREPROCESSOR)
16+
#error "This file is for documentation purposes only. It should not be included."
17+
#endif // !defined(BSONCXX_PRIVATE_DOXYGEN_PREPROCESSOR)
18+
19+
///
20+
/// @file
21+
/// For documentation purposes only.
22+
///
23+
/// @note This header is not includable!
24+
///
25+
26+
///
27+
/// @dir bsoncxx/v_noabi
28+
/// The directory relative to which headers declaring entities in @ref bsoncxx::v_noabi are
29+
/// typically included.
30+
///
31+
/// For backward compatibility, unstable ABI headers may be included using the syntax
32+
/// `<bsoncxx/foo.hpp>`, which is equivalent to `<bsoncxx/v_noabi/bsoncxx/foo.hpp>`.
33+
///
34+
35+
///
36+
/// @dir bsoncxx/v_noabi/bsoncxx
37+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi.
38+
///
39+
40+
///
41+
/// @dir bsoncxx/v_noabi/bsoncxx/array
42+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::array.
43+
///
44+
45+
///
46+
/// @dir bsoncxx/v_noabi/bsoncxx/builder
47+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::builder.
48+
///
49+
50+
///
51+
/// @dir bsoncxx/v_noabi/bsoncxx/builder/basic
52+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::builder::basic.
53+
///
54+
55+
///
56+
/// @dir bsoncxx/v_noabi/bsoncxx/builder/stream
57+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::builder::stream.
58+
///
59+
60+
///
61+
/// @dir bsoncxx/v_noabi/bsoncxx/config
62+
/// Provides headers related to bsoncxx library configuration.
63+
///
64+
65+
///
66+
/// @dir bsoncxx/v_noabi/bsoncxx/document
67+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::document.
68+
///
69+
70+
///
71+
/// @dir bsoncxx/v_noabi/bsoncxx/enums
72+
/// Provides X macro headers over BSON types and binary subtypes.
73+
///
74+
75+
///
76+
/// @dir bsoncxx/v_noabi/bsoncxx/exception
77+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::exception.
78+
///
79+
80+
///
81+
/// @dir bsoncxx/v_noabi/bsoncxx/stdx
82+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::stdx.
83+
///
84+
85+
///
86+
/// @dir bsoncxx/v_noabi/bsoncxx/string
87+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::string.
88+
///
89+
90+
///
91+
/// @dir bsoncxx/v_noabi/bsoncxx/types
92+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::types.
93+
///
94+
95+
///
96+
/// @dir bsoncxx/v_noabi/bsoncxx/types/bson_value
97+
/// Provides headers declaring entities in @ref bsoncxx::v_noabi::types::bson_value.
98+
///
99+
100+
///
101+
/// @namespace bsoncxx::v_noabi
102+
/// Declares entities whose ABI stability is NOT guaranteed.
103+
///
104+
105+
///
106+
/// @namespace bsoncxx::v_noabi::array
107+
/// @copydoc bsoncxx::array
108+
///
109+
110+
///
111+
/// @namespace bsoncxx::v_noabi::builder
112+
/// @copydoc bsoncxx::builder
113+
///
114+
115+
///
116+
/// @namespace bsoncxx::v_noabi::builder::basic
117+
/// @copydoc bsoncxx::builder::basic
118+
///
119+
120+
///
121+
/// @namespace bsoncxx::v_noabi::builder::stream
122+
/// @copydoc bsoncxx::builder::stream
123+
///
124+
125+
///
126+
/// @namespace bsoncxx::v_noabi::document
127+
/// @copydoc bsoncxx::document
128+
///
129+
130+
///
131+
/// @namespace bsoncxx::v_noabi::stdx
132+
/// @copydoc bsoncxx::stdx
133+
///
134+
135+
///
136+
/// @namespace bsoncxx::v_noabi::string
137+
/// @copydoc bsoncxx::string
138+
///
139+
140+
///
141+
/// @namespace bsoncxx::v_noabi::types
142+
/// @copydoc bsoncxx::types
143+
///
144+
/// @see
145+
/// - @ref bsoncxx::v_noabi::types::bson_value
146+
///
147+
148+
///
149+
/// @namespace bsoncxx::v_noabi::types::bson_value
150+
/// Declares entities representing any BSON value type.
151+
///

0 commit comments

Comments
 (0)