userver: en/cpp/def_groups.hpp Source File
Loading...
Searching...
No Matches
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_middlewares | @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 remote 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/// @see @ref scripts/docs/en/userver/component_system.md for information on
41/// how to configure clients
42///
43/// ----------
44///
45/// @htmlonly <div class="bottom-nav"> @endhtmlonly
46/// ⇦ @ref scripts/docs/en/userver/component_system.md | @ref userver_http_handlers ⇨
47/// @htmlonly </div> @endhtmlonly
48
49
50/// @defgroup userver_http_handlers HTTP Handlers
51/// @ingroup userver_components
52///
53/// @brief Handlers are @ref userver_components "components" that could be used
54/// by components::Server to process the incoming requests.
55///
56/// All the HTTP handlers derive from server::handlers::HttpHandlerBase and
57/// override its methods to provide functionality.
58///
59/// See @ref userver_components "Userver Components" for more information on
60/// how to register components.
61///
62/// ## Configuration
63/// All the handlers inherit configuration options from their base classes:
64/// * server::handlers::HandlerBase
65/// * server::handlers::HttpHandlerBase
66///
67/// All the components, including handlers, also have the
68/// @ref userver_components "load-enabled" option.
69///
70/// ## Static configuration example:
71/// Here's an example of the full config for the server::handlers::Ping handle.
72/// @snippet components/common_server_component_list_test.cpp Sample handler ping component config
73///
74/// ----------
75///
76/// @htmlonly <div class="bottom-nav"> @endhtmlonly
77/// ⇦ @ref userver_clients | @ref userver_middlewares ⇨
78/// @htmlonly </div> @endhtmlonly
79
80
81/// @defgroup userver_concurrency Concurrency
82/// @brief Task construction and @ref scripts/docs/en/userver/synchronization.md "synchronization primitives for coroutines"
83
84/// @defgroup userver_universal Universal
85///
86/// @brief Functions and classes that could be used with or without coroutine
87/// environment.
88///
89/// Those classes and functions reside in CMake target `userver-universal`,
90/// that is a base target for all the `userver-*` targets, so all
91/// these the classes and functions are available while using any of the userver
92/// parts.
93///
94/// @see @ref scripts/docs/en/userver/tutorial/json_to_yaml.md for a usage
95/// example.
96
97/// @defgroup userver_containers Containers
98///
99/// @brief Utility containers
100
101/// @defgroup userver_formats Formats
102/// @brief Different containers that @ref scripts/docs/en/userver/formats.md "share the same interface and manipulate tree-like formats"
103
104/// @defgroup userver_formats_serialize Serializers
105/// @brief Files with serializers @ref scripts/docs/en/userver/formats.md "into formats"
106/// @ingroup userver_formats
107
108/// @defgroup userver_formats_serialize_sax SAX Serializers
109/// @brief Files with SAX serializers @ref scripts/docs/en/userver/formats.md "into formats"
110/// @ingroup userver_formats
111
112/// @defgroup userver_formats_parse Parsers
113/// @brief Files with parsers @ref scripts/docs/en/userver/formats.md "from formats"
114/// @ingroup userver_formats
115
116
117/// @defgroup userver_postgres_parse_and_format Postgres parsers and formatters
118///
119/// @brief Files with Postgres parsers and formatters
120
121/// @defgroup userver_dump_read_write Readers and writers for dump::Dumper
122///
123/// @brief Files with dump readers and writers, used mostly by the caches
124
125/// @defgroup userver_clickhouse_types Clickhouse types
126///
127/// @brief Files with implemented ClickHouse types
128
129/// @defgroup userver_testsuite Testsuite Python support
130///
131/// @brief Functions, fixtures and classes to do
132/// @ref scripts/docs/en/userver/functional_testing.md "functional testing with testsuite".
133
134/// @defgroup userver_testsuite_fixtures Fixtures
135/// @brief Fixtures to use with testsuite
136/// @ingroup userver_testsuite
137
138/// @defgroup userver_component_names Component Default Names
139/// @ingroup userver_components
140/// @brief Default names of components that are used in static config files
141
142/// @defgroup userver_middlewares Http server middlewares
143/// @ingroup userver_components
144/// @brief Base classes for implementing and configuring http server middlewares
145/// @see @ref scripts/docs/en/userver/http_server_middlewares.md
146///
147/// ----------
148///
149/// @htmlonly <div class="bottom-nav"> @endhtmlonly
150/// ⇦ @ref userver_http_handlers | @ref userver_components ⇨
151/// @htmlonly </div> @endhtmlonly
152
153// clang-format on