userver: en/cpp/def_groups.hpp Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
def_groups.hpp
1// File to document groups - entities not tied to a particular file
2// NOTE: You can not have a function in multiple groups!
3
4// clang-format off
5
6/// @defgroup userver_base_classes Base Classes
7///
8/// @brief Base classes that simplify implementation of functionality.
9
10
11/// @defgroup userver_components Components
12///
13/// @brief Components that could be used
14/// with utils::DaemonMain like functions; see
15/// @ref scripts/docs/en/userver/component_system.md for an intro.
16///
17/// ----------
18///
19/// @htmlonly <div class="bottom-nav"> @endhtmlonly
20/// ⇦ @ref userver_clients | @ref scripts/docs/en/userver/synchronization.md ⇨
21/// @htmlonly </div> @endhtmlonly
22
23
24/// @defgroup userver_clients Clients
25///
26/// @brief Clients are classes that provide interfaces for requesting and
27/// retrieving data usually from remove server.
28///
29/// All the clients are asynchronous. In other words, a request suspends the
30/// current engine::Task and other coroutines are processed on the task
31/// processor. The suspended task resumes execution on the task processor after
32/// the data was retrieved.
33///
34/// It is a common practice to return references or smart pointers to clients
35/// from a component. In such cases:
36/// * a client lives as long as the component is alive
37/// * and it is safe to invoke member functions of the same client instance
38/// concurrently if not stated the opposite.
39///
40/// ----------
41///
42/// @htmlonly <div class="bottom-nav"> @endhtmlonly
43/// ⇦ @ref scripts/docs/en/userver/component_system.md | @ref userver_http_handlers ⇨
44/// @htmlonly </div> @endhtmlonly
45
46
47/// @defgroup userver_http_handlers HTTP Handlers
48/// @ingroup userver_components
49///
50/// @brief Handlers are @ref userver_components "components" that could be used
51/// by components::Server to process the incoming requests.
52///
53/// All the HTTP handlers derive from server::handlers::HttpHandlerBase and
54/// override its methods to provide functionality.
55///
56/// See @ref userver_components "Userver Components" for more information on
57/// how to register components.
58///
59/// ## Configuration
60/// All the handlers inherit configuration options from their base classes:
61/// * server::handlers::HandlerBase
62/// * server::handlers::HttpHandlerBase
63///
64/// All the components, including handlers, also have the
65/// @ref userver_components "load-enabled" option.
66///
67/// ## Static configuration example:
68/// Here's an example of the full config for the server::handlers::Ping handle.
69/// @snippet components/common_server_component_list_test.cpp Sample handler ping component config
70///
71/// ----------
72///
73/// @htmlonly <div class="bottom-nav"> @endhtmlonly
74/// ⇦ @ref userver_clients | @ref userver_components ⇨
75/// @htmlonly </div> @endhtmlonly
76
77
78/// @defgroup userver_concurrency Concurrency
79/// @brief Task construction and @ref scripts/docs/en/userver/synchronization.md "synchronization primitives for coroutines"
80
81/// @defgroup userver_universal Universal
82///
83/// @brief Functions and classes that could be used with or without coroutine
84/// environment.
85///
86/// Those classes and functions reside in CMake target `userver-universal`,
87/// that is a base target for all the `userver-*` targets, so all
88/// these the classes and functions are available while using any of the userver
89/// parts.
90///
91/// @see @ref scripts/docs/en/userver/tutorial/json_to_yaml.md for a usage
92/// example.
93
94/// @defgroup userver_containers Containers
95///
96/// @brief Utility containers
97
98/// @defgroup userver_formats Formats
99/// @brief Different containers that @ref scripts/docs/en/userver/formats.md "share the same interface and manipulate tree-like formats"
100
101/// @defgroup userver_formats_serialize Serializers
102/// @brief Files with serializers @ref scripts/docs/en/userver/formats.md "into formats"
103/// @ingroup userver_formats
104
105/// @defgroup userver_formats_serialize_sax SAX Serializers
106/// @brief Files with SAX serializers @ref scripts/docs/en/userver/formats.md "into formats"
107/// @ingroup userver_formats
108
109/// @defgroup userver_formats_parse Parsers
110/// @brief Files with parsers @ref scripts/docs/en/userver/formats.md "from formats"
111/// @ingroup userver_formats
112
113
114/// @defgroup userver_postgres_parse_and_format Postgres parsers and formatters
115///
116/// @brief Files with Postgres parsers and formatters
117
118/// @defgroup userver_dump_read_write Readers and writers for dump::Dumper
119///
120/// @brief Files with dump readers and writers, used mostly by the caches
121
122/// @defgroup userver_clickhouse_types Clickhouse types
123///
124/// @brief Files with implemented ClickHouse types
125
126/// @defgroup userver_testsuite Testsuite Python support
127///
128/// @brief Functions, fixtures and classes to do
129/// @ref scripts/docs/en/userver/functional_testing.md "functional testing with testsuite".
130
131/// @defgroup userver_testsuite_fixtures Fixtures
132/// @brief Fixtures to use with testsuite
133/// @ingroup userver_testsuite
134
135/// @defgroup userver_component_names Component Default Names
136/// @ingroup userver_components
137/// @brief Default names of components that are used in static config files
138
139// clang-format on