Exemple #1
0
bool dsme_dbus_message_get_variant_bool(const DsmeDbusMessage* msg)
{
  // FIXME: caller can't tell apart FALSE from error
  dbus_bool_t b = FALSE;

  if( msg ) {
      DBusMessageIter *iter = (DBusMessageIter *)&msg->iter;
      DBusMessageIter subiter;

      if( dsme_dbus_check_arg_type(iter, DBUS_TYPE_VARIANT) ) {
          dbus_message_iter_recurse (iter, &subiter);
          if( dsme_dbus_check_arg_type(&subiter, DBUS_TYPE_BOOLEAN) ) {
	      dbus_message_iter_get_basic(&subiter, &b);
          }
      }

      dbus_message_iter_next(iter);
  }

  return b;
}
Exemple #2
0
bool dsme_dbus_message_get_bool(const DsmeDbusMessage* msg)
{
  // FIXME: caller can't tell apart FALSE from error
  dbus_bool_t b = FALSE;

  if (msg) {
      // FIXME: why take const pointer if we're going to modify the content?
      DBusMessageIter *iter = (DBusMessageIter *)&msg->iter;
      if( dsme_dbus_check_arg_type(iter, DBUS_TYPE_BOOLEAN) ) {
	  dbus_message_iter_get_basic(iter, &b);
      }
      dbus_message_iter_next(iter);
  }

  return b;
}
Exemple #3
0
const char* dsme_dbus_message_get_string(const DsmeDbusMessage* msg)
{
  // FIXME: caller can't tell apart empty string from error
  const char* s = "";

  if (msg) {
      // FIXME: why take const pointer if we're going to modify the content?
      DBusMessageIter *iter = (DBusMessageIter *)&msg->iter;
      if( dsme_dbus_check_arg_type(iter, DBUS_TYPE_STRING) ) {
	  dbus_message_iter_get_basic(iter, &s);
      }
      dbus_message_iter_next(iter);
  }

  return s;
}
Exemple #4
0
int dsme_dbus_message_get_int(const DsmeDbusMessage* msg)
{
  // FIXME: caller can't tell apart zero from error
  dbus_int32_t i = 0;

  if (msg) {
      // FIXME: why take const pointer if we're going to modify the content?
      DBusMessageIter *iter = (DBusMessageIter *)&msg->iter;
      if( dsme_dbus_check_arg_type(iter, DBUS_TYPE_INT32) ) {
	  dbus_message_iter_get_basic(iter, &i);
      }
      dbus_message_iter_next(iter);
  }

  return i;
}