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_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