userver: en/cpp/def_groups.hpp Source File
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
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