27#ifndef SDBUS_CXX_FLAGS_H_
28#define SDBUS_CXX_FLAGS_H_
39 enum GeneralFlags : uint8_t
45 enum PropertyUpdateBehaviorFlags : uint8_t
46 { EMITS_CHANGE_SIGNAL = 3
47 , EMITS_INVALIDATION_SIGNAL = 4
49 , CONST_PROPERTY_VALUE = 6
59 flags_.set(EMITS_CHANGE_SIGNAL,
true);
62 void set(GeneralFlags flag,
bool value =
true)
64 flags_.set(flag, value);
67 void set(PropertyUpdateBehaviorFlags flag,
bool value =
true)
69 flags_.set(EMITS_CHANGE_SIGNAL,
false);
70 flags_.set(EMITS_INVALIDATION_SIGNAL,
false);
71 flags_.set(EMITS_NO_SIGNAL,
false);
72 flags_.set(CONST_PROPERTY_VALUE,
false);
74 flags_.set(flag, value);
77 bool test(GeneralFlags flag)
const
79 return flags_.test(flag);
82 bool test(PropertyUpdateBehaviorFlags flag)
const
84 return flags_.test(flag);
87 uint64_t toSdBusInterfaceFlags()
const;
88 uint64_t toSdBusMethodFlags()
const;
89 uint64_t toSdBusSignalFlags()
const;
90 uint64_t toSdBusPropertyFlags()
const;
91 uint64_t toSdBusWritablePropertyFlags()
const;
94 std::bitset<FLAG_COUNT> flags_;