Skip to content
This repository was archived by the owner on Mar 22, 2023. It is now read-only.

Commit d191a1a

Browse files
author
Pawel Karczewski
committed
[doc] Add Modules page to doxgen documentation
1 parent aa94336 commit d191a1a

29 files changed

+71
-9
lines changed

CONTRIBUTING.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ make cppformat
3737

3838
* Each new feature should be documented using doxygen comment blocks.
3939
* Each non-member function should be added to corresponding class documentation by `@relates` tag
40+
* Each new API should be assigned to group by `@ingroup` tag. See [groups definitions file](doc/groups_definitions.dox) in the repository for details.
41+
4042
# Submitting Pull Requests
4143

4244
We take outside code contributions to `libpmemobj-cpp` through GitHub pull requests.

doc/groups_definitions.dox

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# SPDX-License-Identifier: BSD-3-Clause
2+
# Copyright 2021, Intel Corporation
3+
4+
/** @defgroup containers Containers*/
5+
/** @defgroup experimental_containers Experimental Containers */
6+
/** @defgroup transactions Transactions*/
7+
/** @defgroup allocation Allocation*/
8+
/** @defgroup data_view Data View*/
9+
/** @defgroup synchronization Synchronization Primitives*/
10+
/** @defgroup primitives Primitives*/
11+
/** @defgroup exceptions Exceptions*/

doc/libpmemobj++.Doxyfile.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,8 @@ WARN_LOGFILE =
868868
# Note: If this tag is empty the current directory is searched.
869869

870870
INPUT = @LIBPMEMOBJCPP_ROOT_DIR@/include/libpmemobj++ \
871-
@LIBPMEMOBJCPP_ROOT_DIR@/include/libpmemobj++/README.md
871+
@LIBPMEMOBJCPP_ROOT_DIR@/include/libpmemobj++/README.md \
872+
@LIBPMEMOBJCPP_ROOT_DIR@/doc/groups_definitions.dox
872873

873874
# This tag can be used to specify the character encoding of the source files
874875
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses

include/libpmemobj++/allocator.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ namespace obj
2525
/**
2626
* Encapsulates object specific allocator functionality. Designed to be used
2727
* with C++ allocators. Can be specialized if necessary.
28+
* @ingroup allocation
2829
*/
2930
template <typename T>
3031
class object_traits {
@@ -137,6 +138,7 @@ class object_traits {
137138
/**
138139
* Object traits specialization for the void type. Designed to be used
139140
* with C++ allocators. Can be specialized if necessary.
141+
* @ingroup allocation
140142
*/
141143
template <>
142144
class object_traits<void> {
@@ -179,6 +181,7 @@ class object_traits<void> {
179181
*
180182
* Can be specialized for a given type. Designed to be used with C++ allocators.
181183
* Can be specialized if necessary.
184+
* @ingroup allocation
182185
*/
183186
template <typename T>
184187
class standard_alloc_policy {
@@ -298,6 +301,7 @@ class standard_alloc_policy {
298301

299302
/**
300303
* Void specialization of the standard allocation policy.
304+
* @ingroup allocation
301305
*/
302306
template <>
303307
class standard_alloc_policy<void> {

include/libpmemobj++/condition_variable.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: BSD-3-Clause
2-
/* Copyright 2016-2020, Intel Corporation */
2+
/* Copyright 2016-2021, Intel Corporation */
33

44
/**
55
* @file
@@ -29,6 +29,7 @@ namespace obj
2929
* variable which mimics in behavior the C++11 std::condition_variable. The
3030
* typical usage example would be:
3131
* @snippet mutex/mutex.cpp cond_var_example
32+
* @ingroup synchronization
3233
*/
3334
class condition_variable {
3435
typedef std::chrono::system_clock clock_type;

include/libpmemobj++/container/array.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ namespace obj
5151
*
5252
* @note Since C++20 pmem::obj::array for const types can be initialized only
5353
* via default constructor. This may change in the future.
54+
* @ingroup containers
5455
*/
5556
template <typename T, std::size_t N>
5657
struct array {

include/libpmemobj++/container/basic_string.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ namespace obj
4141
*
4242
* Simple example of pmem::obj::string usage
4343
* @snippet string/string.cpp string_example
44+
* @ingroup containers
4445
*/
4546
template <typename CharT, typename Traits = std::char_traits<CharT>>
4647
class basic_string {

include/libpmemobj++/container/concurrent_hash_map.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1620,6 +1620,7 @@ operator!=(const hash_map_iterator<Container, M> &i,
16201620
* The example of storing strings without necessity of using transactions would
16211621
* be:
16221622
* @snippet concurrent_hash_map/concurrent_hash_map_string.cpp cmap_string_ex
1623+
* @ingroup containers
16231624
*/
16241625
template <typename Key, typename T, typename Hash, typename KeyEqual,
16251626
typename MutexType, typename ScopedLockType>

include/libpmemobj++/container/segment_vector.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,7 @@ using exponential_size_vector_policy =
499499
*
500500
* Example usage:
501501
* @snippet segment_vector/segment_vector.cpp segment_vector_example
502+
* @ingroup containers
502503
*/
503504
template <typename T, typename Policy = exponential_size_vector_policy<>>
504505
class segment_vector {

include/libpmemobj++/container/vector.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ namespace obj
3636
/**
3737
* pmem::obj::vector - persistent container with std::vector compatible
3838
* interface.
39+
* @ingroup containers
3940
*/
4041
template <typename T>
4142
class vector {

0 commit comments

Comments
 (0)