41int MessageIter::type()
43 return dbus_message_iter_get_arg_type((DBusMessageIter *)&
_iter);
48 return type() == DBUS_TYPE_INVALID;
53 return dbus_message_iter_has_next((DBusMessageIter *)&
_iter);
58 dbus_message_iter_next((DBusMessageIter *)&
_iter);
71 return dbus_message_iter_append_basic((DBusMessageIter *)&
_iter, type_id, value);
76 if (
type() != type_id)
79 dbus_message_iter_get_basic((DBusMessageIter *)
_iter, ptr);
169 unsigned long long u;
211 get_basic(DBUS_TYPE_OBJECT_PATH, &chars);
230 dbus_message_iter_recurse((DBusMessageIter *)&
_iter, (DBusMessageIter *) & (iter.
_iter));
236 return dbus_message_iter_get_signature((DBusMessageIter *)&
_iter);
241 return dbus_message_iter_append_fixed_array((DBusMessageIter *)&
_iter,
type, &ptr, length);
246 return dbus_message_iter_get_element_type((DBusMessageIter *)&
_iter);
252 dbus_message_iter_get_fixed_array((DBusMessageIter *)&
_iter, ptr, &length);
258 return dbus_message_iter_get_arg_type((DBusMessageIter *)&
_iter) == DBUS_TYPE_ARRAY;
263 return is_array() && dbus_message_iter_get_element_type((DBusMessageIter *)
_iter) == DBUS_TYPE_DICT_ENTRY;
269 dbus_message_iter_open_container(
270 (DBusMessageIter *)&
_iter, DBUS_TYPE_ARRAY, sig, (DBusMessageIter *) & (arr.
_iter)
278 dbus_message_iter_open_container(
279 (DBusMessageIter *)
_iter, DBUS_TYPE_VARIANT, sig, (DBusMessageIter *) & (var.
_iter)
287 dbus_message_iter_open_container(
288 (DBusMessageIter *)
_iter, DBUS_TYPE_STRUCT, NULL, (DBusMessageIter *) & (stu.
_iter)
296 dbus_message_iter_open_container(
297 (DBusMessageIter *)
_iter, DBUS_TYPE_DICT_ENTRY, NULL, (DBusMessageIter *) & (ent.
_iter)
304 dbus_message_iter_close_container((DBusMessageIter *)&
_iter, (DBusMessageIter *) & (container.
_iter));
335 debug_log(
"copying basic type: %c", from.type());
337 unsigned char value[8];
338 from.get_basic(from.type(), &value);
346 debug_log(
"copying compound type: %c[%s]", from.type(), sig);
349 dbus_message_iter_open_container
351 (DBusMessageIter *) & (to.
_iter),
353 from.type() == DBUS_TYPE_DICT_ENTRY ||
354 from.type() == DBUS_TYPE_STRUCT ? NULL : sig,
355 (DBusMessageIter *) & (to_container.
_iter)
376 if (
_pvt->msg && incref) dbus_message_ref(
_pvt->msg);
382 dbus_message_ref(
_pvt->msg);
387 dbus_message_unref(
_pvt->msg);
394 dbus_message_unref(
_pvt->msg);
396 dbus_message_ref(
_pvt->msg);
410 va_start(vl, first_type);
412 bool b = dbus_message_append_args_valist(
_pvt->msg, first_type, vl);
420 dbus_message_append_args(
_pvt->msg, DBUS_TYPE_INVALID);
425 return dbus_message_get_type(
_pvt->msg);
430 return dbus_message_get_serial(
_pvt->msg);
435 return dbus_message_get_reply_serial(
_pvt->msg);
440 return dbus_message_set_reply_serial(
_pvt->msg, s);
445 return dbus_message_get_sender(
_pvt->msg);
450 return dbus_message_set_sender(
_pvt->msg, s);
455 return dbus_message_get_destination(
_pvt->msg);
460 return dbus_message_set_destination(
_pvt->msg, s);
465 return type() == DBUS_MESSAGE_TYPE_ERROR;
470 return dbus_message_is_signal(
_pvt->msg, interface, member);
476 dbus_message_iter_init_append(
_pvt->msg, (DBusMessageIter *) & (iter.
_iter));
483 dbus_message_iter_init(
_pvt->msg, (DBusMessageIter *) & (iter.
_iter));
492 _pvt->msg = dbus_message_new(DBUS_MESSAGE_TYPE_ERROR);
497 _pvt->msg = dbus_message_new_error(to_reply.
_pvt->msg,
name, message);
502 return dbus_message_is_error(
_pvt->msg, m.
name());
507 return dbus_message_get_error_name(
_pvt->msg);
512 return dbus_message_set_error_name(
_pvt->msg, n);
520 _pvt->msg = dbus_message_new(DBUS_MESSAGE_TYPE_SIGNAL);
536 return dbus_message_get_interface(
_pvt->msg);
541 return dbus_message_set_interface(
_pvt->msg, i);
546 return dbus_message_get_member(
_pvt->msg);
551 return dbus_message_set_member(
_pvt->msg, m);
556 return dbus_message_get_path(
_pvt->msg);
562 dbus_message_get_path_decomposed(
_pvt->msg, &p);
568 return dbus_message_set_path(
_pvt->msg, p);
576 _pvt->msg = dbus_message_new(DBUS_MESSAGE_TYPE_METHOD_CALL);
581 _pvt->msg = dbus_message_new_method_call(dest,
path, iface, method);
591 return dbus_message_get_interface(
_pvt->msg);
596 return dbus_message_set_interface(
_pvt->msg, i);
601 return dbus_message_get_member(
_pvt->msg);
606 return dbus_message_set_member(
_pvt->msg, m);
611 return dbus_message_get_path(
_pvt->msg);
617 dbus_message_get_path_decomposed(
_pvt->msg, &p);
623 return dbus_message_set_path(
_pvt->msg, p);
628 return dbus_message_get_signature(
_pvt->msg);
641 return dbus_message_get_signature(
_pvt->msg);
char ** path_split() const
bool operator==(const CallMessage &) const
const char * member() const
const char * signature() const
const char * path() const
const char * interface() const
const char * name() const
bool operator==(const ErrorMessage &) const
signed long long get_int64()
void copy_data(MessageIter &to)
bool append_byte(unsigned char byte)
bool append_array(char type, const void *ptr, size_t length)
const char * get_string()
unsigned short get_uint16()
DXXAPILOCAL bool append_basic(int type_id, void *value)
unsigned long long get_uint64()
const char * get_signature()
unsigned int get_uint32()
bool append_signature(const char *chars)
MessageIter & operator++()
unsigned char _iter[sizeof(void *) *3+sizeof(int) *11]
MessageIter new_dict_entry()
bool append_double(double d)
bool append_uint32(unsigned int u)
bool append_int16(signed short i)
bool append_path(const char *chars)
bool append_uint64(unsigned long long i)
bool append_int32(signed int i)
bool append_int64(signed long long i)
void close_container(MessageIter &container)
bool append_string(const char *chars)
DXXAPILOCAL void get_basic(int type_id, void *ptr)
bool append_uint16(unsigned short u)
MessageIter new_array(const char *sig)
MessageIter new_variant(const char *sig)
const char * signature() const
const char * member() const
const char * interface() const
const char * path() const
SignalMessage(const char *name)
char ** path_split() const
bool operator==(const SignalMessage &) const
static bool is_basic_type(int typecode)
DXXAPI LogFunction debug_log
friend class ReturnMessage
bool is_signal(const char *interface, const char *member) const
bool append(int first_type,...)
Message & operator=(const Message &m)
const char * destination() const
const char * sender() const
MessageIter reader() const