27#ifndef SDBUS_CXX_IOBJECT_H_
28#define SDBUS_CXX_IOBJECT_H_
131 template <
typename... VTableItems
132 ,
typename = std::enable_if_t<(is_one_of_variants_types<VTableItem, std::decay_t<VTableItems>> && ...)> >
337 template <
typename... VTableItems
338 ,
typename = std::enable_if_t<(is_one_of_variants_types<VTableItem, std::decay_t<VTableItems>> && ...)> >
422 [[nodiscard]]
virtual Signal createSignal(
const char* interfaceName,
const char* signalName)
const = 0;
442 template <
typename... VTableItems,
typename>
445 addVTable(std::move(interfaceName), {std::forward<VTableItems>(items)...});
448 template <
typename... VTableItems,
typename>
451 return addVTable(std::vector<VTableItem>{std::forward<VTableItems>(items)...});
std::unique_ptr< sdbus::IObject > createObject(sdbus::IConnection &connection, ObjectPath objectPath)
Creates instance representing a D-Bus object.
Definition IConnection.h:61
virtual void emitPropertiesChangedSignal(const char *interfaceName, const std::vector< PropertyName > &propNames)=0
Emits PropertyChanged signal for specified properties under a given interface of this object path.
virtual Slot addObjectManager(return_slot_t)=0
Adds an ObjectManager interface at the path of this D-Bus object.
VTableAdder addVTable(std::vector< VTableItem > vtable)
Adds a declaration of methods, properties and signals of the object at a given interface.
Definition IObject.h:454
virtual Message getCurrentlyProcessedMessage() const =0
Provides access to the currently processed D-Bus message.
virtual Slot addVTable(InterfaceName interfaceName, std::vector< VTableItem > vtable, return_slot_t)=0
Adds a declaration of methods, properties and signals of the object at a given interface.
virtual void emitInterfacesRemovedSignal()=0
Emits InterfacesRemoved signal on this object path.
virtual void emitPropertiesChangedSignal(const InterfaceName &interfaceName)=0
Emits PropertyChanged signal for all properties on a given interface of this object path.
virtual const ObjectPath & getObjectPath() const =0
Returns object path of the underlying DBus object.
virtual void emitSignal(const sdbus::Signal &message)=0
Emits signal for this object path.
virtual Signal createSignal(const InterfaceName &interfaceName, const SignalName &signalName) const =0
Creates a signal message.
SignalEmitter emitSignal(const SignalName &signalName)
Emits signal on D-Bus.
Definition IObject.h:427
virtual void addVTable(InterfaceName interfaceName, std::vector< VTableItem > vtable)=0
Adds a declaration of methods, properties and signals of the object at a given interface.
virtual void emitInterfacesRemovedSignal(const std::vector< InterfaceName > &interfaces)=0
Emits InterfacesRemoved signal on this object path.
virtual void emitInterfacesAddedSignal(const std::vector< InterfaceName > &interfaces)=0
Emits InterfacesAdded signal on this object path.
virtual void emitPropertiesChangedSignal(const InterfaceName &interfaceName, const std::vector< PropertyName > &propNames)=0
Emits PropertyChanged signal for specified properties under a given interface of this object path.
virtual void addObjectManager()=0
Adds an ObjectManager interface at the path of this D-Bus object.
virtual sdbus::IConnection & getConnection() const =0
Provides D-Bus connection used by the object.
virtual void emitInterfacesAddedSignal()=0
Emits InterfacesAdded signal on this object path.
virtual void emitPropertiesChangedSignal(const char *interfaceName)=0
Emits PropertyChanged signal for all properties on a given interface of this object path.
virtual void unregister()=0
Unregisters object's API and removes object from the bus.
Definition ConvenienceApiClasses.h:71
Definition ConvenienceApiClasses.h:54
Definition TypeTraits.h:88