diff options
author | Murray Cumming <murrayc@murrayc.com> | 2010-09-13 16:03:11 +0200 |
---|---|---|
committer | Murray Cumming <murrayc@murrayc.com> | 2010-09-13 16:03:11 +0200 |
commit | 03b968137015c6f98f42be087f68e0ea724387d8 (patch) | |
tree | bc0aa1e3ef8bf33a7b0b76fa7224c9ba270d2baa | |
parent | 5b1e8550f0989c8ef9e14975bd73fa1b006b7d5f (diff) | |
download | glibmm-03b968137015c6f98f42be087f68e0ea724387d8.tar.gz |
DBusMessage: Added methods.
* gio/src/dbusconnection.hg: Move DBusCapabilityFlags to dbusmessage.h.
* gio/src/dbusmessage.[hg|ccg]: Added create_from_blob(),
set/get_byte_order(), get_header_fields(), bytes_needed(), to_blob(), and
to_exception().
* gio/src/gio_enums.defs: Regenerated with enums.pl.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | gio/src/dbusconnection.hg | 32 | ||||
-rw-r--r-- | gio/src/dbusmessage.ccg | 4 | ||||
-rw-r--r-- | gio/src/dbusmessage.hg | 31 | ||||
-rw-r--r-- | gio/src/gio_enums.defs | 44 |
5 files changed, 96 insertions, 25 deletions
@@ -1,5 +1,15 @@ 2010-09-13 Murray Cumming <murrayc@murrayc.com> + DBusMessage: Added methods. + + * gio/src/dbusconnection.hg: Move DBusCapabilityFlags to dbusmessage.h. + * gio/src/dbusmessage.[hg|ccg]: Added create_from_blob(), + set/get_byte_order(), get_header_fields(), bytes_needed(), to_blob(), and + to_exception(). + * gio/src/gio_enums.defs: Regenerated with enums.pl. + +2010-09-13 Murray Cumming <murrayc@murrayc.com> + Add VariantIter include to glibmm.h. * glib/glibmm.h: diff --git a/gio/src/dbusconnection.hg b/gio/src/dbusconnection.hg index f08b6d0b..a3cb7942 100644 --- a/gio/src/dbusconnection.hg +++ b/gio/src/dbusconnection.hg @@ -33,7 +33,6 @@ namespace Gio { _WRAP_ENUM(BusType, GBusType) -_WRAP_ENUM(DBusCapabilityFlags, GDBusCapabilityFlags, NO_GTYPE) _WRAP_ENUM(DBusConnectionFlags, GDBusConnectionFlags, NO_GTYPE) _WRAP_ENUM(DBusSendMessageFlags, GDBusSendMessageFlags, NO_GTYPE) @@ -88,47 +87,47 @@ public: //TODO: Documentation. void close(); - + //TODO: Documentation. void close(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable); - + //TODO: Documentation. void close(const SlotAsyncReady& slot); _IGNORE(g_dbus_connection_close) - + _WRAP_METHOD(bool close_finish(const Glib::RefPtr<AsyncResult>& result), g_dbus_connection_close_finish, errthrow) - + //TODO: Documentation. void close_sync(); - + //TODO: Documentation. _WRAP_METHOD(void close_sync(const Glib::RefPtr<Cancellable>& cancellable), g_dbus_connection_close_sync, errthrow) //TODO: Documentation. void flush(); - + //TODO: Documentation. void flush(const SlotAsyncReady& slot, const Glib::RefPtr<Cancellable>& cancellable); - + //TODO: Documentation. void flush(const SlotAsyncReady& slot); _IGNORE(g_dbus_connection_flush) - + _WRAP_METHOD(bool flush_finish(const Glib::RefPtr<AsyncResult>& result), g_dbus_connection_flush_finish, errthrow) - + //TODO: Documentation. void flush_sync(); - + //TODO: Documentation. _WRAP_METHOD(void flush_sync(const Glib::RefPtr<Cancellable>& cancellable), g_dbus_connection_flush_sync, errthrow) //TODO: In the C API, out_serial is volatile, but gmmproc can't parse that. #m4 _CONVERSION(`guint32*',`volatile guint32*',`($3)') _WRAP_METHOD(bool send_message(const Glib::RefPtr<DBusMessage>& message, DBusSendMessageFlags flags, guint32* out_serial), g_dbus_connection_send_message, errthrow) - + //TODO: Documentation. _IGNORE(g_dbus_connection_send_message_with_reply) void send_message_with_reply(const Glib::RefPtr<DBusMessage>& message, int timeout_msec, const Glib::RefPtr<Cancellable>& cancellable, const SlotAsyncReady& slot); @@ -137,16 +136,16 @@ public: _WRAP_METHOD(void start_message_processing(), g_dbus_connection_start_message_processing) _WRAP_METHOD(bool is_closed() const, g_dbus_connection_is_closed) - + _WRAP_METHOD(Glib::RefPtr<IOStream> get_stream(), g_dbus_connection_get_stream, refreturn) _WRAP_METHOD(Glib::RefPtr<const IOStream> get_stream() const, g_dbus_connection_get_stream, refreturn, constversion) - + _WRAP_METHOD(Glib::ustring get_guid() const, g_dbus_connection_get_guid) _WRAP_METHOD(Glib::ustring get_unique_name() const, g_dbus_connection_get_unique_name) - + _WRAP_METHOD(Glib::RefPtr<Credentials> get_peer_credentials(), g_dbus_connection_get_peer_credentials, refreturn) _WRAP_METHOD(Glib::RefPtr<const Credentials> get_peer_credentials() const, g_dbus_connection_get_peer_credentials, refreturn, constversion) - + _WRAP_METHOD(bool get_exit_on_close() const, g_dbus_connection_get_exit_on_close) _WRAP_METHOD(void set_exit_on_close(bool exit_on_close = true), g_dbus_connection_set_exit_on_close) _WRAP_METHOD(DBusCapabilityFlags get_capabilities() const, g_dbus_connection_get_capabilities) @@ -154,4 +153,3 @@ public: } // namespace Gio - diff --git a/gio/src/dbusmessage.ccg b/gio/src/dbusmessage.ccg index 18a32fc9..b2229f44 100644 --- a/gio/src/dbusmessage.ccg +++ b/gio/src/dbusmessage.ccg @@ -25,6 +25,8 @@ namespace Gio { +typedef DBusMessage::ByteOrder ByteOrder; + void DBusMessage::get_body(Glib::VariantBase& value) const { GVariant* const g_value = @@ -55,5 +57,5 @@ void DBusMessage::unset_unix_fd_list() g_dbus_message_set_unix_fd_list(gobj(), 0); } #endif //G_OS_UNIX - + } // namespace Gio diff --git a/gio/src/dbusmessage.hg b/gio/src/dbusmessage.hg index f0bea013..94447c2c 100644 --- a/gio/src/dbusmessage.hg +++ b/gio/src/dbusmessage.hg @@ -19,6 +19,7 @@ #include <glibmm/object.h> #include <glibmm/variant.h> +#include <glibmm/utility.h> _DEFS(giomm,gio) _PINCLUDE(glibmm/private/object_p.h) @@ -29,6 +30,7 @@ namespace Gio _WRAP_ENUM(DBusMessageType, GDBusMessageType, NO_GTYPE) _WRAP_ENUM(DBusMessageFlags, GDBusMessageFlags, NO_GTYPE) _WRAP_ENUM(DBusMessageHeaderField, GDBusMessageHeaderField, NO_GTYPE) +_WRAP_ENUM(DBusCapabilityFlags, GDBusCapabilityFlags, NO_GTYPE) class UnixFDList; @@ -58,11 +60,29 @@ public: _WRAP_METHOD(static Glib::RefPtr<DBusMessage> create_method_reply(const Glib::RefPtr<DBusMessage>& method_call_message), g_dbus_message_new_method_reply) _WRAP_METHOD(static Glib::RefPtr<DBusMessage> create_method_error_literal(const Glib::RefPtr<const DBusMessage>& method_call_message, const Glib::ustring& error_name, const Glib::ustring& error_message), g_dbus_message_new_method_error_literal) + + _WRAP_METHOD(static Glib::RefPtr<DBusMessage> create_from_blob(const guchar* blob, gsize blob_len, DBusCapabilityFlags capabilities = DBUS_CAPABILITY_FLAGS_NONE), g_dbus_message_new_from_blob, errthrow) + + _WRAP_METHOD(Glib::ustring print(guint indent), g_dbus_message_print) _WRAP_METHOD(DBusMessageType get_message_type() const, g_dbus_message_get_message_type) _WRAP_METHOD(void set_message_type(DBusMessageType type), g_dbus_message_set_message_type) + //gmmproc can't handle the character literals, and this won't be expanded in future, + //so we just wrap it by hand. + enum ByteOrder + { + BYTE_ORDER_BIG_ENDIAN = 'B', + BYTE_ORDER_LITTLE_ENDIAN = 'l' + }; + + #m4 _CONVERSION(`ByteOrder',`GDBusMessageByteOrder',`(GDBusMessageByteOrder)($3)') + #m4 _CONVERSION(`GDBusMessageByteOrder',`ByteOrder',`(ByteOrder)($3)') + + _WRAP_METHOD(ByteOrder get_byte_order() const, g_dbus_message_get_byte_order) + _WRAP_METHOD(void set_byte_order(ByteOrder byte_order), g_dbus_message_set_byte_order) + _WRAP_METHOD(guint32 get_serial() const, g_dbus_message_get_serial) _WRAP_METHOD(void set_serial(guint32 serial), g_dbus_message_set_serial) @@ -98,9 +118,12 @@ public: */ void get_header(Glib::VariantBase& value, DBusMessageHeaderField header_field) const; _IGNORE(g_dbus_message_get_header) - + _WRAP_METHOD(void set_header(DBusMessageHeaderField header_field, const Glib::VariantBase& value), g_dbus_message_set_header) + #m4 _CONVERSION(`guchar*',`Glib::ArrayHandle<guchar>',`Glib::ArrayHandle<guchar>($3)') + _WRAP_METHOD(Glib::ArrayHandle<guchar> get_header_fields() const, g_dbus_message_get_header_fields) + _WRAP_METHOD(Glib::ustring get_destination() const, g_dbus_message_get_destination) _WRAP_METHOD(void set_destination(const Glib::ustring& value), g_dbus_message_set_destination) @@ -126,6 +149,12 @@ public: _WRAP_METHOD(void set_signature(const Glib::ustring& value), g_dbus_message_set_signature) _WRAP_METHOD(Glib::ustring get_arg0() const, g_dbus_message_get_arg0) + + _WRAP_METHOD(static gssize bytes_needed(const guchar* blob, gsize blob_len), g_dbus_message_bytes_needed, errthrow) + + _WRAP_METHOD(guchar* to_blob(gsize& out_size, DBusCapabilityFlags capabilities = DBUS_CAPABILITY_FLAGS_NONE), g_dbus_message_to_blob, errthrow) + + _WRAP_METHOD(void to_exception(), g_dbus_message_to_gerror, errthrow) }; diff --git a/gio/src/gio_enums.defs b/gio/src/gio_enums.defs index 8beb0452..ae469ac2 100644 --- a/gio/src/gio_enums.defs +++ b/gio/src/gio_enums.defs @@ -399,7 +399,14 @@ ;; G_IO_ERROR_ADDRESS_IN_USE, ;; G_IO_ERROR_PARTIAL_INPUT, ;; G_IO_ERROR_INVALID_DATA, -;; G_IO_ERROR_DBUS_ERROR +;; G_IO_ERROR_DBUS_ERROR, +;; G_IO_ERROR_HOST_UNREACHABLE, +;; G_IO_ERROR_NETWORK_UNREACHABLE, +;; G_IO_ERROR_CONNECTION_REFUSED, +;; G_IO_ERROR_PROXY_FAILED, +;; G_IO_ERROR_PROXY_AUTH_FAILED, +;; G_IO_ERROR_PROXY_NEED_AUTH, +;; G_IO_ERROR_PROXY_NOT_ALLOWED ;; } GIOErrorEnum; (define-enum-extended IOErrorEnum @@ -435,7 +442,6 @@ '("busy" "G_IO_ERROR_BUSY" "26") '("would-block" "G_IO_ERROR_WOULD_BLOCK" "27") '("host-not-found" "G_IO_ERROR_HOST_NOT_FOUND" "28") - '("host-not-found" "G_IO_ERROR_HOST_WAS_NOT_FOUND" "28") '("would-merge" "G_IO_ERROR_WOULD_MERGE" "29") '("failed-handled" "G_IO_ERROR_FAILED_HANDLED" "30") '("too-many-open-files" "G_IO_ERROR_TOO_MANY_OPEN_FILES" "31") @@ -444,6 +450,13 @@ '("partial-input" "G_IO_ERROR_PARTIAL_INPUT" "34") '("invalid-data" "G_IO_ERROR_INVALID_DATA" "35") '("dbus-error" "G_IO_ERROR_DBUS_ERROR" "36") + '("host-unreachable" "G_IO_ERROR_HOST_UNREACHABLE" "37") + '("network-unreachable" "G_IO_ERROR_NETWORK_UNREACHABLE" "38") + '("connection-refused" "G_IO_ERROR_CONNECTION_REFUSED" "39") + '("proxy-failed" "G_IO_ERROR_PROXY_FAILED" "40") + '("proxy-auth-failed" "G_IO_ERROR_PROXY_AUTH_FAILED" "41") + '("proxy-need-auth" "G_IO_ERROR_PROXY_NEED_AUTH" "42") + '("proxy-not-allowed" "G_IO_ERROR_PROXY_NOT_ALLOWED" "43") ) ) @@ -1021,7 +1034,7 @@ ;; Original typedef: ;; typedef enum /*< flags >*/ ;; { -;; G_DBUS_SIGNAL_FLAGS_NONE = 0, +;; G_DBUS_SIGNAL_FLAGS_NONE = 0 ;; } GDBusSignalFlags; (define-flags-extended DBusSignalFlags @@ -1052,7 +1065,8 @@ ;; typedef enum ;; { ;; G_CREDENTIALS_TYPE_INVALID, -;; G_CREDENTIALS_TYPE_LINUX_UCRED +;; G_CREDENTIALS_TYPE_LINUX_UCRED, +;; G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED ;; } GCredentialsType; (define-enum-extended CredentialsType @@ -1061,6 +1075,23 @@ (values '("invalid" "G_CREDENTIALS_TYPE_INVALID" "0") '("linux-ucred" "G_CREDENTIALS_TYPE_LINUX_UCRED" "1") + '("freebsd-cmsgcred" "G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED" "2") + ) +) + +;; Original typedef: +;; typedef enum +;; { +;; G_DBUS_MESSAGE_BYTE_ORDER_BIG_ENDIAN = 'B', +;; G_DBUS_MESSAGE_BYTE_ORDER_LITTLE_ENDIAN = 'l' +;; } GDBusMessageByteOrder; + +(define-enum-extended DBusMessageByteOrder + (in-module "G") + (c-name "GDBusMessageByteOrder") + (values + '("big-endian" "G_DBUS_MESSAGE_BYTE_ORDER_BIG_ENDIAN" "'B'") + '("little-endian" "G_DBUS_MESSAGE_BYTE_ORDER_LITTLE_ENDIAN" "'l'") ) ) @@ -1073,7 +1104,8 @@ ;; G_SETTINGS_BIND_GET = (1<<0), ;; G_SETTINGS_BIND_SET = (1<<1), ;; G_SETTINGS_BIND_NO_SENSITIVITY = (1<<2), -;; G_SETTINGS_BIND_GET_NO_CHANGES = (1<<3) +;; G_SETTINGS_BIND_GET_NO_CHANGES = (1<<3), +;; G_SETTINGS_BIND_INVERT_BOOLEAN = (1<<4) ;; } GSettingsBindFlags; (define-flags-extended SettingsBindFlags @@ -1085,6 +1117,6 @@ '("set" "G_SETTINGS_BIND_SET" "(1<<1)") '("no-sensitivity" "G_SETTINGS_BIND_NO_SENSITIVITY" "(1<<2)") '("get-no-changes" "G_SETTINGS_BIND_GET_NO_CHANGES" "(1<<3)") + '("invert-boolean" "G_SETTINGS_BIND_INVERT_BOOLEAN" "(1<<4)") ) ) - |