Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
CDBusMessage Class Reference

#include <DBusMessage.h>

Public Member Functions

 CDBusMessage (const char *destination, const char *object, const char *interface, const char *method)
 
 CDBusMessage (std::string const &destination, std::string const &object, std::string const &interface, std::string const &method)
 
void AppendObjectPath (const char *object)
 
template<typename T >
void AppendArgument (const T arg)
 
void AppendArgument (const char **arrayString, unsigned int length)
 
template<typename TFirst >
void AppendArguments (const TFirst first)
 
template<typename TFirst , typename... TArgs>
void AppendArguments (const TFirst first, const TArgs... args)
 
DBusMessageIter * GetArgumentIter ()
 
template<typename... TArgs>
bool GetReplyArguments (TArgs *... args)
 
DBusMessage * SendSystem ()
 
DBusMessage * SendSession ()
 
DBusMessage * SendSystem (CDBusError &error)
 
DBusMessage * SendSession (CDBusError &error)
 
bool SendAsyncSystem ()
 
bool SendAsyncSession ()
 
DBusMessage * Send (DBusBusType type)
 
DBusMessage * Send (DBusBusType type, CDBusError &error)
 
DBusMessage * Send (DBusConnection *con, CDBusError &error)
 
template<>
void AppendArgument (const bool arg)
 
template<>
void AppendArgument (const bool arg)
 

Constructor & Destructor Documentation

◆ CDBusMessage() [1/2]

CDBusMessage::CDBusMessage ( const char * destination,
const char * object,
const char * interface,
const char * method )

◆ CDBusMessage() [2/2]

CDBusMessage::CDBusMessage ( std::string const & destination,
std::string const & object,
std::string const & interface,
std::string const & method )

Member Function Documentation

◆ AppendArgument() [1/4]

template<>
void CDBusMessage::AppendArgument ( const bool arg)

◆ AppendArgument() [2/4]

template<>
void CDBusMessage::AppendArgument ( const bool arg)

◆ AppendArgument() [3/4]

void CDBusMessage::AppendArgument ( const char ** arrayString,
unsigned int length )

◆ AppendArgument() [4/4]

template<typename T >
void CDBusMessage::AppendArgument ( const T arg)
inline

◆ AppendArguments() [1/2]

template<typename TFirst >
void CDBusMessage::AppendArguments ( const TFirst first)
inline

◆ AppendArguments() [2/2]

template<typename TFirst , typename... TArgs>
void CDBusMessage::AppendArguments ( const TFirst first,
const TArgs... args )
inline

◆ AppendObjectPath()

void CDBusMessage::AppendObjectPath ( const char * object)

◆ GetArgumentIter()

DBusMessageIter * CDBusMessage::GetArgumentIter ( )

◆ GetReplyArguments()

template<typename... TArgs>
bool CDBusMessage::GetReplyArguments ( TArgs *... args)
inline

Retrieve simple arguments from DBus reply message

You MUST use the correct fixed-width integer typedefs (e.g. std::uint16_t) corresponding to the DBus types for the variables or you will get potentially differing behavior between architectures since the DBus argument type detection is based on the width of the type.

Complex arguments (arrays, structs) are not supported.

Returned pointers for strings are only valid until the instance of this class is deleted.

Exceptions
std::logic_errorif the message has no reply
Returns
whether all arguments could be retrieved (false on argument type mismatch or when more arguments were to be retrieved than there are in the message)

◆ Send() [1/3]

DBusMessage * CDBusMessage::Send ( DBusBusType type)

◆ Send() [2/3]

DBusMessage * CDBusMessage::Send ( DBusBusType type,
CDBusError & error )

◆ Send() [3/3]

DBusMessage * CDBusMessage::Send ( DBusConnection * con,
CDBusError & error )

◆ SendAsyncSession()

bool CDBusMessage::SendAsyncSession ( )

◆ SendAsyncSystem()

bool CDBusMessage::SendAsyncSystem ( )

◆ SendSession() [1/2]

DBusMessage * CDBusMessage::SendSession ( )

◆ SendSession() [2/2]

DBusMessage * CDBusMessage::SendSession ( CDBusError & error)

◆ SendSystem() [1/2]

DBusMessage * CDBusMessage::SendSystem ( )

◆ SendSystem() [2/2]

DBusMessage * CDBusMessage::SendSystem ( CDBusError & error)

The documentation for this class was generated from the following files: