userver
C++ Async Framework
Loading...
Searching...
No Matches
protobuf.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/dump/protobuf.hpp
4
/// @brief Dumping support for protobuf messages
5
///
6
/// @ingroup userver_dump_read_write
7
8
#
include
<
type_traits
>
9
10
#
include
<
google
/
protobuf
/
message_lite
.
h
>
11
12
#
include
<
userver
/
dump
/
fwd
.
hpp
>
13
14
USERVER_NAMESPACE_BEGIN
15
16
namespace
dump
{
17
18
namespace
impl {
19
20
void
WriteProtoMessageToDump(
Writer
& writer,
const
google::protobuf::MessageLite& message);
21
22
void
ParseProtoMessageFromDump(
Reader
& reader, google::protobuf::MessageLite& message);
23
24
}
// namespace impl
25
26
/// @brief Protobuf message dumping support
27
template
<
typename
T>
28
std
::
enable_if_t
<
std
::
is_base_of_v
<
google
::
protobuf
::
MessageLite
,
T
>>
Write
(
Writer
&
writer
,
const
T
&
value
) {
29
impl::WriteProtoMessageToDump(writer, value);
30
}
31
32
/// @brief Protobuf message dumping support
33
template
<
typename
T>
34
std
::
enable_if_t
<
std
::
is_base_of_v
<
google
::
protobuf
::
MessageLite
,
T
>,
T
>
Read
(
Reader
&
reader
,
To
<
T
>) {
35
T value;
36
impl::ParseProtoMessageFromDump(reader, value);
37
return
value;
38
}
39
40
}
// namespace dump
41
42
USERVER_NAMESPACE_END
userver
dump
protobuf.hpp
Generated on Fri Jan 31 2025 09:50:23 for userver by
Doxygen
1.10.0