summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMurray Cumming <murrayc@murrayc.com>2010-09-13 16:03:11 +0200
committerMurray Cumming <murrayc@murrayc.com>2010-09-13 16:03:11 +0200
commit03b968137015c6f98f42be087f68e0ea724387d8 (patch)
treebc0aa1e3ef8bf33a7b0b76fa7224c9ba270d2baa
parent5b1e8550f0989c8ef9e14975bd73fa1b006b7d5f (diff)
downloadglibmm-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--ChangeLog10
-rw-r--r--gio/src/dbusconnection.hg32
-rw-r--r--gio/src/dbusmessage.ccg4
-rw-r--r--gio/src/dbusmessage.hg31
-rw-r--r--gio/src/gio_enums.defs44
5 files changed, 96 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 1d7dae1d..459d62d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)")
)
)
-