sdbus-c++
2.3.1
High-level C++ D-Bus library based on systemd D-Bus implementation
Toggle main menu visibility
Loading...
Searching...
No Matches
VTableItems.h
Go to the documentation of this file.
1
25
26
#ifndef SDBUS_CXX_VTABLEITEMS_H_
27
#define SDBUS_CXX_VTABLEITEMS_H_
28
29
#include <
sdbus-c++/Flags.h
>
30
#include <
sdbus-c++/Types.h
>
31
#include <
sdbus-c++/TypeTraits.h
>
32
33
#include <string>
34
#include <variant>
35
#include <vector>
36
37
namespace
sdbus {
38
39
struct
MethodVTableItem
40
{
41
template
<
typename
Function>
MethodVTableItem
& implementedAs(Function&& callback);
42
MethodVTableItem
& withInputParamNames(std::vector<std::string> names);
43
template
<
typename
... String>
MethodVTableItem
& withInputParamNames(String... names);
44
MethodVTableItem
& withOutputParamNames(std::vector<std::string> names);
45
template
<
typename
... String>
MethodVTableItem
& withOutputParamNames(String... names);
46
MethodVTableItem
& markAsDeprecated();
47
MethodVTableItem
& markAsPrivileged();
48
MethodVTableItem
& withNoReply();
49
50
MethodName name;
51
Signature
inputSignature;
52
std::vector<std::string> inputParamNames;
53
Signature
outputSignature;
54
std::vector<std::string> outputParamNames;
55
method_callback callbackHandler;
56
Flags
flags;
57
};
58
59
MethodVTableItem
registerMethod(MethodName methodName);
60
MethodVTableItem
registerMethod(std::string methodName);
61
62
struct
SignalVTableItem
63
{
64
template
<
typename
... Args>
SignalVTableItem
& withParameters();
65
template
<
typename
... Args>
SignalVTableItem
& withParameters(std::vector<std::string> names);
66
template
<
typename
... Args,
typename
... String>
SignalVTableItem
& withParameters(String... names);
67
SignalVTableItem
& markAsDeprecated();
68
69
SignalName name;
70
Signature
signature;
71
std::vector<std::string> paramNames;
72
Flags
flags;
73
};
74
75
SignalVTableItem
registerSignal(SignalName signalName);
76
SignalVTableItem
registerSignal(std::string signalName);
77
78
struct
PropertyVTableItem
79
{
80
template
<
typename
Function>
PropertyVTableItem
& withGetter(Function&& callback);
81
template
<
typename
Function>
PropertyVTableItem
& withSetter(Function&& callback);
82
PropertyVTableItem
& markAsDeprecated();
83
PropertyVTableItem
& markAsPrivileged();
84
PropertyVTableItem
& withUpdateBehavior(Flags::PropertyUpdateBehaviorFlags behavior);
85
86
PropertyName name;
87
Signature
signature;
88
property_get_callback getter;
89
property_set_callback setter;
90
Flags
flags;
91
};
92
93
PropertyVTableItem
registerProperty(PropertyName propertyName);
94
PropertyVTableItem
registerProperty(std::string propertyName);
95
96
struct
InterfaceFlagsVTableItem
97
{
98
InterfaceFlagsVTableItem
& markAsDeprecated();
99
InterfaceFlagsVTableItem
& markAsPrivileged();
100
InterfaceFlagsVTableItem
& withNoReplyMethods();
101
InterfaceFlagsVTableItem
& withPropertyUpdateBehavior(Flags::PropertyUpdateBehaviorFlags behavior);
102
103
Flags
flags;
104
};
105
106
InterfaceFlagsVTableItem
setInterfaceFlags();
107
108
using
VTableItem = std::variant<MethodVTableItem, SignalVTableItem, PropertyVTableItem, InterfaceFlagsVTableItem>;
109
110
}
// namespace sdbus
111
112
#endif
/* SDBUS_CXX_VTABLEITEMS_H_ */
Flags.h
TypeTraits.h
Types.h
sdbus::Flags
Definition
Flags.h:37
sdbus::Signature
Definition
Types.h:295
sdbus::InterfaceFlagsVTableItem
Definition
VTableItems.h:97
sdbus::MethodVTableItem
Definition
VTableItems.h:40
sdbus::PropertyVTableItem
Definition
VTableItems.h:79
sdbus::SignalVTableItem
Definition
VTableItems.h:63
include
sdbus-c++
VTableItems.h
Generated by
1.17.0