introspection: add GObject introspection support (bgo #637032)
authorGiovanni Campagna <scampa.giovanni@gmail.com>
Fri, 21 Jan 2011 20:46:09 +0000 (14:46 -0600)
committerDan Williams <dcbw@redhat.com>
Fri, 21 Jan 2011 20:46:09 +0000 (14:46 -0600)
Add the necessary annotations (the mininum required, that is those
on return values. NULL parameters or container types may require
more), and the Autotools stuff to get a NetworkManager GIR for
libnm-util and a NMClient for libnm-glib.

31 files changed:
.gitignore
Makefile.am
configure.ac
libnm-glib/Makefile.am
libnm-glib/libnm-glib.pc.in
libnm-glib/nm-active-connection.c
libnm-glib/nm-client.c
libnm-glib/nm-device-wifi.c
libnm-glib/nm-device-wimax.c
libnm-glib/nm-device.c
libnm-glib/nm-dhcp4-config.c
libnm-glib/nm-dhcp6-config.c
libnm-glib/nm-ip4-config.c
libnm-glib/nm-ip6-config.c
libnm-glib/nm-object.c
libnm-glib/nm-remote-connection.c
libnm-glib/nm-remote-settings.c
libnm-glib/nm-remote-settings.h
libnm-glib/nm-types.c
libnm-util/Makefile.am
libnm-util/libnm-util.ver
libnm-util/nm-connection.c
libnm-util/nm-setting-ip4-config.c
libnm-util/nm-setting-ip4-config.h
libnm-util/nm-setting-ip6-config.c
libnm-util/nm-setting-ip6-config.h
libnm-util/nm-setting-vpn.c
libnm-util/nm-setting-vpn.h
libnm-util/nm-setting.c
libnm-util/nm-utils.c
m4/introspection.m4 [new file with mode: 0644]

index b87df23..cd8aa6a 100644 (file)
@@ -3,6 +3,8 @@
 *.lo
 *.la
 *.bz2
+*.gir
+*.typelib
 Makefile
 Makefile.in*
 configure
index c3eb4e1..78924ab 100644 (file)
@@ -29,7 +29,8 @@ DISTCHECK_CONFIGURE_FLAGS = \
        --with-tests=yes \
        --with-docs=yes \
        --with-udev-dir=$$dc_install_base/lib/udev \
-       --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
+       --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) \
+       --enable-wimax=no
 
 DISTCLEANFILES = intltool-extract intltool-merge intltool-update
 
index a7b8b1a..05fde82 100644 (file)
@@ -241,6 +241,8 @@ PKG_CHECK_MODULES(GIO, gio-2.0)
 AC_SUBST(GIO_CFLAGS)
 AC_SUBST(GIO_LIBS)
 
+GOBJECT_INTROSPECTION_CHECK([0.9.6])
+
 AC_ARG_WITH(udev-dir, AS_HELP_STRING([--with-udev-dir=DIR], [where the udev base directory is]))
 if test -n "$with_udev_dir" ; then
        UDEV_BASE_DIR="$with_udev_dir"
index bedc980..40e43f8 100644 (file)
@@ -47,6 +47,9 @@ libdeprecated_nm_glib_la_LIBADD = \
        $(DBUS_LIBS) \
        $(GLIB_LIBS)
 
+libdeprecateddir = $(includedir)/libnm-glib
+libdeprecated_HEADERS = libnm_glib.h
+
 #####################################################
 # Real libnm-glib stuff
 #####################################################
@@ -59,9 +62,9 @@ libnm_glib_la_CFLAGS = \
        $(GUDEV_CFLAGS)
 
 libnmincludedir = $(includedir)/libnm-glib
+libnmvpndir = $(includedir)/libnm-glib
 
 libnminclude_HEADERS = \
-       libnm_glib.h \
        nm-object.h \
        nm-client.h \
        nm-device.h \
@@ -74,8 +77,6 @@ libnminclude_HEADERS = \
        nm-cdma-device.h \
        nm-serial-device.h \
        nm-vpn-connection.h \
-       nm-vpn-plugin.h \
-       nm-vpn-plugin-ui-interface.h \
        nm-types.h \
        nm-active-connection.h \
        nm-dhcp4-config.h \
@@ -87,14 +88,15 @@ libnminclude_HEADERS = \
        nm-device-wimax.h \
        nm-wimax-nsp.h
 
-libnm_glib_la_SOURCES = \
+libnmvpn_HEADERS = \
+       nm-vpn-plugin.h \
+       nm-vpn-plugin-ui-interface.h
+
+libnm_glib_la_csources = \
        nm-object.c \
-       nm-object-private.h \
        nm-client.c \
        nm-dbus-utils.c \
-       nm-dbus-utils.h \
        nm-device.c \
-       nm-device-private.h \
        nm-device-ethernet.c \
        nm-device-wifi.c \
        nm-device-bt.c \
@@ -105,20 +107,29 @@ libnm_glib_la_SOURCES = \
        nm-serial-device.c \
        nm-vpn-connection.c \
        nm-types.c \
-       nm-types-private.h \
        nm-object-cache.c \
-       nm-object-cache.h \
        nm-active-connection.c \
        nm-dhcp4-config.c \
        nm-ip6-config.c \
        nm-dhcp6-config.c \
        nm-remote-connection.c \
-       nm-remote-connection-private.h \
        nm-remote-settings.c \
        nm-secret-agent.c \
        nm-device-wimax.c \
        nm-wimax-nsp.c
 
+libnm_glib_la_private_headers = \
+       nm-object-private.h \
+       nm-dbus-utils.h \
+       nm-device-private.h \
+       nm-types-private.h \
+       nm-object-cache.h \
+       nm-remote-connection-private.h
+
+libnm_glib_la_SOURCES = \
+       $(libnm_glib_la_csources) \
+       $(libnm_glib_la_private_headers)
+
 libnm_glib_la_LIBADD = \
        $(top_builddir)/libnm-util/libnm-util.la \
        $(top_builddir)/marshallers/libmarshallers.la \
@@ -128,7 +139,7 @@ libnm_glib_la_LIBADD = \
        $(GUDEV_LIBS)
 
 libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-glib.ver \
-       -version-info "6:2:4"
+       -version-info "7:0:5"
 
 noinst_PROGRAMS = libnm-glib-test
 
@@ -225,3 +236,28 @@ DISTCLEANFILES = libnm-glib.pc libnm-glib.pc
 EXTRA_DIST = libnm-glib.pc.in libnm-glib-vpn.pc.in libnm-glib.ver libnm-glib-vpn.ver
 
 CLEANFILES = $(BUILT_SOURCES)
+
+-include $(INTROSPECTION_MAKEFILE)
+INTROSPECTION_GIRS =
+INTROSPECTION_COMPILER_ARGS = --includedir=$(top_builddir)/libnm-util
+
+if HAVE_INTROSPECTION
+introspection_sources = $(libnminclude_HEADERS) $(libnm_glib_la_csources)
+
+NMClient-1.0.gir: libnm-glib.la
+NMClient_1_0_gir_INCLUDES = GObject-2.0 DBusGLib-1.0
+NMClient_1_0_gir_PACKAGES = gobject-2.0 dbus-glib-1 gudev-1.0
+NMClient_1_0_gir_CFLAGS = $(INCLUDES)
+NMClient_1_0_gir_LIBS = libnm-glib.la
+NMClient_1_0_gir_FILES = $(introspection_sources)
+NMClient_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm_ --include-uninstalled=$(top_builddir)/libnm-util/NetworkManager-1.0.gir
+INTROSPECTION_GIRS += NMClient-1.0.gir
+
+girdir = $(datadir)/gir-1.0
+gir_DATA = $(INTROSPECTION_GIRS)
+
+typelibdir = $(libdir)/girepository-1.0
+typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+
+CLEANFILES += $(gir_DATA) $(typelib_DATA)
+endif
index 5c3471b..a1010ba 100644 (file)
@@ -6,7 +6,7 @@ includedir=@includedir@
 Name: libnm-glib
 Description: Convenience library for clients of NetworkManager
 Version: @VERSION@
-Requires: NetworkManager >= 0.7.999 glib-2.0 dbus-glib-1
+Requires: NetworkManager >= 0.7.999 gobject-2.0 dbus-glib-1
 Cflags: -I${includedir}/libnm-glib
 Libs: -L${libdir} -lnm-glib
 
index f9e8adb..46ca12f 100644 (file)
@@ -149,7 +149,7 @@ nm_active_connection_get_specific_object (NMActiveConnection *connection)
  *
  * Gets the #NMDevice<!-- -->s used for the active connections.
  *
- * Returns: the #GPtrArray containing #NMDevice<!-- -->s.
+ * Returns: (element-type NMClient.Device): the #GPtrArray containing #NMDevice<!-- -->s.
  * This is the internal copy used by the connection, and must not be modified.
  **/
 const GPtrArray *
@@ -301,7 +301,7 @@ get_property (GObject *object,
 
        switch (prop_id) {
        case PROP_CONNECTION:
-               g_value_set_boxed (value, nm_active_connection_get_connection (self));
+               g_value_set_string (value, nm_active_connection_get_connection (self));
                break;
        case PROP_SPECIFIC_OBJECT:
                g_value_set_boxed (value, nm_active_connection_get_specific_object (self));
index ff8b999..cfb6a48 100644 (file)
@@ -664,7 +664,7 @@ get_property (GObject *object,
                g_value_set_boolean (value, priv->manager_running);
                break;
        case PROP_NETWORKING_ENABLED:
-               g_value_set_boolean (value, priv->networking_enabled);
+               g_value_set_boolean (value, nm_client_networking_get_enabled (self));
                break;
        case PROP_WIRELESS_ENABLED:
                g_value_set_boolean (value, priv->wireless_enabled);
@@ -829,6 +829,7 @@ nm_client_class_init (NMClientClass *client_class)
         * NMClient::active-connections:
         *
         * The active connections.
+        * Type: GPtrArray<NMClient.ActiveConnection>
         **/
        g_object_class_install_property
                (object_class, PROP_ACTIVE_CONNECTIONS,
@@ -843,7 +844,7 @@ nm_client_class_init (NMClientClass *client_class)
        /**
         * NMClient::device-added:
         * @client: the client that received the signal
-        * @device: the new device
+        * @device: (type NMClient.Device): the new device
         *
         * Notifies that a #NMDevice is added.
         **/
@@ -860,7 +861,7 @@ nm_client_class_init (NMClientClass *client_class)
        /**
         * NMClient::device-removed:
         * @widget: the client that received the signal
-        * @device: the removed device
+        * @device: (type NMClient.Device): the removed device
         *
         * Notifies that a #NMDevice is removed.
         **/
@@ -1012,7 +1013,7 @@ client_device_removed_proxy (DBusGProxy *proxy, char *path, gpointer user_data)
  *
  * Gets all the detected devices.
  *
- * Returns: a #GPtrArray containing all the #NMDevice<!-- -->s.
+ * Returns: (transfer none) (element-type NMClient.Device): a #GPtrArray containing all the #NMDevice<!-- -->s.
  * The returned array is owned by the client and should not be modified.
  **/
 const GPtrArray *
@@ -1052,7 +1053,7 @@ nm_client_get_devices (NMClient *client)
  *
  * Gets a #NMDevice from a #NMClient.
  *
- * Returns: the #NMDevice for the given @object_path or %NULL if none is found.
+ * Returns: (transfer none): the #NMDevice for the given @object_path or %NULL if none is found.
  **/
 NMDevice *
 nm_client_get_device_by_path (NMClient *client, const char *object_path)
@@ -1109,7 +1110,7 @@ activate_cb (DBusGProxy *proxy,
  * @device: the #NMDevice
  * @specific_object: the device specific object (currently used only for
  * activating wireless devices and should be the #NMAccessPoint<!-- -->'s path.
- * @callback: the function to call when the call is done
+ * @callback: (scope async): the function to call when the call is done
  * @user_data: user data to pass to the callback function
  *
  * Activates a connection with the given #NMDevice.
@@ -1165,14 +1166,14 @@ add_activate_cb (DBusGProxy *proxy,
  *   and will be completed by NetworkManager using the given @device and
  *   @specific_object before being added
  * @device: the #NMDevice
- * @specific_object: the object path of a connection-type-specific object this
- *   activation should use.  This parameter is currently ignored for wired and
- *   mobile broadband connections, and the value of NULL should be used (ie, no
- *   specific object).  For WiFi connections, pass the object path of a specific
- *   AP from the card's scan list, which will be used to complete the details of
- *   the newly added connection.
- * @callback: the function to call when the call is done
- * @user_data: user data to pass to the callback function
+ * @specific_object: (allow-none): the object path of a connection-type-specific
+ *   object this activation should use. This parameter is currently ignored for
+ *   wired and mobile broadband connections, and the value of NULL should be used
+ *   (ie, no specific object).  For WiFi connections, pass the object path of a
+ *   specific AP from the card's scan list, which will be used to complete the
+ *   details of the newly added connection.
+ * @callback: (scope async): the function to call when the call is done
+ * @user_data: (closure): user data to pass to the callback function
  *
  * Adds a new connection using the given details (if any) as a template
  * (automatically filling in missing settings with the capabilities of the
@@ -1243,7 +1244,8 @@ nm_client_deactivate_connection (NMClient *client, NMActiveConnection *active)
  *
  * Gets the active connections.
  *
- * Returns: a #GPtrArray containing all the active #NMActiveConnection<!-- -->s.
+ * Returns: (transfer none) (element-type NMClient.ActiveConnection): a #GPtrArray
+*  containing all the active #NMActiveConnection<!-- -->s.
  * The returned array is owned by the client and should not be modified.
  **/
 const GPtrArray * 
index 3d17023..be5b987 100644 (file)
@@ -252,7 +252,7 @@ nm_device_wifi_get_capabilities (NMDeviceWifi *device)
  *
  * Gets the active #NMAccessPoint.
  *
- * Returns: the access point or %NULL if none is active
+ * Returns: (transfer none): the access point or %NULL if none is active
  **/
 NMAccessPoint *
 nm_device_wifi_get_active_access_point (NMDeviceWifi *device)
@@ -302,7 +302,8 @@ nm_device_wifi_get_active_access_point (NMDeviceWifi *device)
  *
  * Gets all the scanned access points of the #NMDeviceWifi.
  *
- * Returns: a #GPtrArray containing all the scanned #NMAccessPoint<!-- -->s.
+ * Returns: (element-type NMClient.AccessPoint): a #GPtrArray containing all the
+ * scanned #NMAccessPoint<!-- -->s.
  * The returned array is owned by the client and should not be modified.
  **/
 const GPtrArray *
@@ -342,7 +343,7 @@ nm_device_wifi_get_access_points (NMDeviceWifi *device)
  *
  * Gets a #NMAccessPoint by path.
  *
- * Returns: the access point or %NULL if none is found.
+ * Returns: (transfer none): the access point or %NULL if none is found.
  **/
 NMAccessPoint *
 nm_device_wifi_get_access_point_by_path (NMDeviceWifi *device,
index bdab0eb..4e7ebe8 100644 (file)
@@ -108,12 +108,12 @@ nm_device_wimax_new (DBusGConnection *connection, const char *path)
 
 /**
  * nm_device_wimax_get_hw_address:
- * @device: a #NMDeviceWimax
+ * @wimax: a #NMDeviceWimax
  *
  * Gets the hardware (MAC) address of the #NMDeviceWimax
  *
  * Returns: the hardware address. This is the internal string used by the
- * device, and must not be modified.
+ *          device, and must not be modified.
  **/
 const char *
 nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
@@ -138,7 +138,7 @@ nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
  *
  * Gets the active #NMWimaxNsp.
  *
- * Returns: the access point or %NULL if none is active
+ * Returns: (transfer full): the access point or %NULL if none is active
  **/
 NMWimaxNsp *
 nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax)
@@ -188,7 +188,8 @@ nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax)
  *
  * Gets all the scanned NSPs of the #NMDeviceWimax.
  *
- * Returns: a #GPtrArray containing all the scanned #NMWimaxNsp<!-- -->s.
+ * Returns: (element-type NMClient.WimaxNsp): a #GPtrArray containing
+ *          all the scanned #NMWimaxNsp<!-- -->s.
  * The returned array is owned by the client and should not be modified.
  **/
 const GPtrArray *
@@ -228,7 +229,7 @@ nm_device_wimax_get_nsps (NMDeviceWimax *wimax)
  *
  * Gets a #NMWimaxNsp by path.
  *
- * Returns: the access point or %NULL if none is found.
+ * Returns: (transfer none): the access point or %NULL if none is found.
  **/
 NMWimaxNsp *
 nm_device_wimax_get_nsp_by_path (NMDeviceWimax *wimax,
@@ -339,7 +340,7 @@ clean_up_nsps (NMDeviceWimax *self, gboolean notify)
 
 /**
  * nm_device_wimax_get_center_frequency:
- * @device: a #NMDeviceWimax
+ * @self: a #NMDeviceWimax
  *
  * Gets the center frequency (in KHz) of the radio channel the device is using
  * to communicate with the network when connected.  Has no meaning when the
@@ -348,15 +349,15 @@ clean_up_nsps (NMDeviceWimax *self, gboolean notify)
  * Returns: the center frequency in KHz, or 0
  **/
 guint
-nm_device_wimax_get_center_frequency (NMDeviceWimax *wimax)
+nm_device_wimax_get_center_frequency (NMDeviceWimax *self)
 {
        NMDeviceWimaxPrivate *priv;
 
-       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), 0);
+       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0);
 
-       priv = NM_DEVICE_WIMAX_GET_PRIVATE (wimax);
+       priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
        if (!priv->center_freq) {
-               priv->center_freq = _nm_object_get_uint_property (NM_OBJECT (wimax),
+               priv->center_freq = _nm_object_get_uint_property (NM_OBJECT (self),
                                                                  NM_DBUS_INTERFACE_DEVICE_WIMAX,
                                                                  DBUS_PROP_CENTER_FREQUENCY);
        }
@@ -365,7 +366,7 @@ nm_device_wimax_get_center_frequency (NMDeviceWimax *wimax)
 
 /**
  * nm_device_wimax_get_rssi:
- * @device: a #NMDeviceWimax
+ * @self: a #NMDeviceWimax
  *
  * Gets the RSSI of the current radio link in dBm.  This value indicates how
  * strong the raw received RF signal from the base station is, but does not
@@ -375,15 +376,15 @@ nm_device_wimax_get_center_frequency (NMDeviceWimax *wimax)
  * Returns: the RSSI in dBm, or 0
  **/
 gint
-nm_device_wimax_get_rssi (NMDeviceWimax *wimax)
+nm_device_wimax_get_rssi (NMDeviceWimax *self)
 {
        NMDeviceWimaxPrivate *priv;
 
-       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), 0);
+       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0);
 
-       priv = NM_DEVICE_WIMAX_GET_PRIVATE (wimax);
+       priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
        if (!priv->rssi) {
-               priv->rssi = _nm_object_get_int_property (NM_OBJECT (wimax),
+               priv->rssi = _nm_object_get_int_property (NM_OBJECT (self),
                                                          NM_DBUS_INTERFACE_DEVICE_WIMAX,
                                                          DBUS_PROP_RSSI);
        }
@@ -392,7 +393,7 @@ nm_device_wimax_get_rssi (NMDeviceWimax *wimax)
 
 /**
  * nm_device_wimax_get_cinr:
- * @device: a #NMDeviceWimax
+ * @self: a #NMDeviceWimax
  *
  * Gets the CINR (Carrier to Interference + Noise Ratio) of the current radio
  * link in dB.  CINR is a more accurate measure of radio link quality.  Has no
@@ -401,15 +402,15 @@ nm_device_wimax_get_rssi (NMDeviceWimax *wimax)
  * Returns: the CINR in dB, or 0
  **/
 gint
-nm_device_wimax_get_cinr (NMDeviceWimax *wimax)
+nm_device_wimax_get_cinr (NMDeviceWimax *self)
 {
        NMDeviceWimaxPrivate *priv;
 
-       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), 0);
+       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0);
 
-       priv = NM_DEVICE_WIMAX_GET_PRIVATE (wimax);
+       priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
        if (!priv->cinr) {
-               priv->cinr = _nm_object_get_int_property (NM_OBJECT (wimax),
+               priv->cinr = _nm_object_get_int_property (NM_OBJECT (self),
                                                          NM_DBUS_INTERFACE_DEVICE_WIMAX,
                                                          DBUS_PROP_CINR);
        }
@@ -418,7 +419,7 @@ nm_device_wimax_get_cinr (NMDeviceWimax *wimax)
 
 /**
  * nm_device_wimax_get_tx_power:
- * @device: a #NMDeviceWimax
+ * @self: a #NMDeviceWimax
  *
  * Average power of the last burst transmitted by the device, in units of
  * 0.5 dBm.  i.e. a TxPower of -11 represents an actual device TX power of
@@ -427,15 +428,15 @@ nm_device_wimax_get_cinr (NMDeviceWimax *wimax)
  * Returns: the TX power in dBm, or 0
  **/
 gint
-nm_device_wimax_get_tx_power (NMDeviceWimax *wimax)
+nm_device_wimax_get_tx_power (NMDeviceWimax *self)
 {
        NMDeviceWimaxPrivate *priv;
 
-       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), 0);
+       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), 0);
 
-       priv = NM_DEVICE_WIMAX_GET_PRIVATE (wimax);
+       priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
        if (!priv->tx_power) {
-               priv->tx_power = _nm_object_get_int_property (NM_OBJECT (wimax),
+               priv->tx_power = _nm_object_get_int_property (NM_OBJECT (self),
                                                              NM_DBUS_INTERFACE_DEVICE_WIMAX,
                                                              DBUS_PROP_TX_POWER);
        }
@@ -444,22 +445,22 @@ nm_device_wimax_get_tx_power (NMDeviceWimax *wimax)
 
 /**
  * nm_device_wimax_get_bsid:
- * @device: a #NMDeviceWimax
+ * @self: a #NMDeviceWimax
  *
  * Gets the ID of the serving Base Station when the device is connected.
  *
  * Returns: the ID of the serving Base Station, or NULL
  **/
 const char *
-nm_device_wimax_get_bsid (NMDeviceWimax *wimax)
+nm_device_wimax_get_bsid (NMDeviceWimax *self)
 {
        NMDeviceWimaxPrivate *priv;
 
-       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL);
+       g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), NULL);
 
-       priv = NM_DEVICE_WIMAX_GET_PRIVATE (wimax);
+       priv = NM_DEVICE_WIMAX_GET_PRIVATE (self);
        if (!priv->bsid) {
-               priv->bsid = _nm_object_get_string_property (NM_OBJECT (wimax),
+               priv->bsid = _nm_object_get_string_property (NM_OBJECT (self),
                                                             NM_DBUS_INTERFACE_DEVICE_WIMAX,
                                                             DBUS_PROP_BSID);
        }
index b494749..6a39c77 100644 (file)
@@ -934,7 +934,7 @@ nm_device_get_firmware_missing (NMDevice *device)
  *
  * Gets the current #NMIP4Config associated with the #NMDevice.
  *
- * Returns: the #NMIP4Config or %NULL if the device is not activated.
+ * Returns: (transfer none): the #NMIP4Config or %NULL if the device is not activated.
  **/
 NMIP4Config *
 nm_device_get_ip4_config (NMDevice *device)
@@ -968,7 +968,7 @@ nm_device_get_ip4_config (NMDevice *device)
  *
  * Gets the current #NMDHCP4Config associated with the #NMDevice.
  *
- * Returns: the #NMDHCPConfig or %NULL if the device is not activated or not
+ * Returns: (transfer none): the #NMDHCPConfig or %NULL if the device is not activated or not
  * using DHCP.
  **/
 NMDHCP4Config *
@@ -1003,7 +1003,7 @@ nm_device_get_dhcp4_config (NMDevice *device)
  *
  * Gets the current #NMIP6Config associated with the #NMDevice.
  *
- * Returns: the #NMIP6Config or %NULL if the device is not activated.
+ * Returns: (transfer none): the #NMIP6Config or %NULL if the device is not activated.
  **/
 NMIP6Config *
 nm_device_get_ip6_config (NMDevice *device)
@@ -1037,7 +1037,7 @@ nm_device_get_ip6_config (NMDevice *device)
  *
  * Gets the current #NMDHCP6Config associated with the #NMDevice.
  *
- * Returns: the #NMDHCPConfig or %NULL if the device is not activated or not
+ * Returns: (transfer none): the #NMDHCPConfig or %NULL if the device is not activated or not
  * using DHCP.
  **/
 NMDHCP6Config *
@@ -1317,7 +1317,7 @@ deactivate_cb (DBusGProxy *proxy,
 /**
  * nm_device_disconnect:
  * @device: a #NMDevice
- * @callback: callback to be called when disconnect operation completes
+ * @callback: (scope async): callback to be called when disconnect operation completes
  * @user_data: caller-specific data passed to @callback
  *
  * Disconnects the device if currently connected, and prevents the device from
index 442d19d..45d4834 100644 (file)
@@ -203,7 +203,7 @@ nm_dhcp4_config_new (DBusGConnection *connection, const char *object_path)
  *
  * Gets all the options contained in the configuration.
  *
- * Returns: the #GHashTable containing strings for keys and values.
+ * Returns: (transfer none) (element-type utf8 GObject.Value): the #GHashTable containing strings for keys and values.
  * This is the internal copy used by the configuration, and must not be modified.
  **/
 GHashTable *
index 3792867..dbcf4c6 100644 (file)
@@ -203,7 +203,7 @@ nm_dhcp6_config_new (DBusGConnection *connection, const char *object_path)
  *
  * Gets all the options contained in the configuration.
  *
- * Returns: the #GHashTable containing strings for keys and values.
+ * Returns: (transfer none) (element-type utf8 GObject.Value): the #GHashTable containing strings for keys and values.
  * This is the internal copy used by the configuration, and must not be modified.
  **/
 GHashTable *
index 4bedc7a..bc93a2c 100644 (file)
@@ -337,8 +337,8 @@ nm_ip4_config_new (DBusGConnection *connection, const char *object_path)
  *
  * Gets the IP4 addresses (containing the address, prefix, and gateway).
  *
- * Returns: the #GSList containing #NMSettingIP4Address<!-- -->es. This is the internal copy
- * used by the configuration and must not be modified.
+ * Returns: (element-type NetworkManager.IP4Address): the #GSList containing #NMIP4Address<!-- -->es.
+ * This is the internal copy used by the configuration and must not be modified.
  **/
 const GSList *
 nm_ip4_config_get_addresses (NMIP4Config *config)
@@ -366,7 +366,7 @@ nm_ip4_config_get_addresses (NMIP4Config *config)
 }
 
 /**
- * nm_ip4_config_get_hostname:
+ * nm_ip4_config_get_hostname: (skip):
  * @config: a #NMIP4Config
  *
  * DEPRECATED.  Don't use.
@@ -385,7 +385,7 @@ nm_ip4_config_get_hostname (NMIP4Config *config)
  *
  * Gets the domain name servers (DNS).
  *
- * Returns: the #GArray containing %guint32<!-- -->s. This is the internal copy used by the
+ * Returns: (element-type guint32): the #GArray containing %guint32<!-- -->s. This is the internal copy used by the
  * configuration and must not be modified.
  **/
 const GArray *
@@ -421,7 +421,7 @@ nm_ip4_config_get_nameservers (NMIP4Config *config)
  *
  * Gets the domain names.
  *
- * Returns: the #GPtrArray containing domains as strings. This is the 
+ * Returns: (element-type utf8): the #GPtrArray containing domains as strings. This is the 
  * internal copy used by the configuration, and must not be modified.
  **/
 const GPtrArray *
@@ -460,8 +460,8 @@ nm_ip4_config_get_domains (NMIP4Config *config)
  *
  * Gets the Windows Internet Name Service servers (WINS).
  *
- * Returns: the #GArray containing %guint32<!-- -->s. This is the internal copy used by the
- * configuration and must not be modified.
+ * Returns: (element-type guint32): the #GArray containing %guint32<!-- -->s.
+ * This is the internal copy used by the configuration and must not be modified.
  **/
 const GArray *
 nm_ip4_config_get_wins_servers (NMIP4Config *config)
@@ -496,8 +496,9 @@ nm_ip4_config_get_wins_servers (NMIP4Config *config)
  *
  * Gets the routes.
  *
- * Returns: the #GSList containing #NMSettingIP4Route<!-- -->s. This is the 
- * internal copy used by the configuration, and must not be modified.
+ * Returns: (element-type NetworkManager.IP4Route): the #GSList containing
+ * #NMIP4Route<!-- -->s. This is the internal copy used by the configuration,
+ * and must not be modified.
  **/
 const GSList *
 nm_ip4_config_get_routes (NMIP4Config *config)
index fe71c1b..fce6430 100644 (file)
@@ -146,8 +146,9 @@ register_for_property_changed (NMIP6Config *config)
  *
  * Gets the IP6 addresses (containing the address, prefix, and gateway).
  *
- * Returns: the #GSList containing #NMSettingIP6Address<!-- -->es. This is the internal copy
- * used by the configuration and must not be modified.
+ * Returns: (element-type NetworkManager.IP6Address): the #GSList containing
+ * #NMIP6Address<!-- -->es. This is the internal copy used by the configuration
+ * and must not be modified.
  **/
 const GSList *
 nm_ip6_config_get_addresses (NMIP6Config *config)
@@ -174,15 +175,16 @@ nm_ip6_config_get_addresses (NMIP6Config *config)
        return priv->addresses;
 }
 
+/* FIXME: like in libnm_util, in6_addr is not introspectable, so skipping here */
 /**
- * nm_ip6_config_get_nameservers:
+ * nm_ip6_config_get_nameservers: (skip)
  * @config: a #NMIP6Config
  *
  * Gets the domain name servers (DNS).
  *
- * Returns: a #GSList containing elements of type 'struct in6_addr' which contain
- * the addresses of nameservers of the configuration.  This is the internal copy
- * used by the configuration and must not be modified.
+ * Returns: (element-type Posix.in6_addr): a #GSList containing elements of type
+ * 'struct in6_addr' which contain the addresses of nameservers of the configuration.
+ * This is the internal copy used by the configuration and must not be modified.
  **/
 const GSList *
 nm_ip6_config_get_nameservers (NMIP6Config *config)
@@ -217,8 +219,8 @@ nm_ip6_config_get_nameservers (NMIP6Config *config)
  *
  * Gets the domain names.
  *
- * Returns: the #GPtrArray containing domains as strings. This is the 
- * internal copy used by the configuration, and must not be modified.
+ * Returns: (element-type utf8): the #GPtrArray containing domains as strings.
+ * This is the internal copy used by the configuration, and must not be modified.
  **/
 const GPtrArray *
 nm_ip6_config_get_domains (NMIP6Config *config)
@@ -251,8 +253,9 @@ nm_ip6_config_get_domains (NMIP6Config *config)
  *
  * Gets the routes.
  *
- * Returns: the #GSList containing #NMSettingIP6Route<!-- -->s. This is the 
- * internal copy used by the configuration, and must not be modified.
+ * Returns: (element-type NetworkManager.IP6Route): the #GSList containing
+ * #NMIP6Route<!-- -->s. This is the internal copy used by the configuration,
+ * and must not be modified.
  **/
 const GSList *
 nm_ip6_config_get_routes (NMIP6Config *config)
index 85cb6b7..78b4638 100644 (file)
@@ -223,7 +223,7 @@ nm_object_class_init (NMObjectClass *nm_object_class)
  *
  * Gets the #NMObject's DBusGConnection.
  *
- * Returns: the connection
+ * Returns: (transfer none): the connection
  **/
 DBusGConnection *
 nm_object_get_connection (NMObject *object)
index 0887b72..f11d100 100644 (file)
@@ -101,7 +101,7 @@ update_cb (DBusGProxy *proxy, GError *error, gpointer user_data)
 /**
  * nm_remote_connection_commit_changes:
  * @connection: the #NMRemoteConnection
- * @callback: a function to be called when the commit completes
+ * @callback: (scope async): a function to be called when the commit completes
  * @user_data: caller-specific data to be passed to @callback
  *
  * Save any local changes to the settings and properties of this connection and
@@ -153,7 +153,7 @@ delete_cb (DBusGProxy *proxy, GError *error, gpointer user_data)
 /**
  * nm_remote_connection_delete:
  * @connection: the #NMRemoteConnection
- * @callback: a function to be called when the delete completes
+ * @callback: (scope async): a function to be called when the delete completes
  * @user_data: caller-specific data to be passed to @callback
  *
  * Delete the connection.
@@ -202,7 +202,7 @@ get_secrets_cb (DBusGProxy *proxy, GHashTable *secrets, GError *error, gpointer
  * @hints: #NMSetting key names to get secrets for (optional)
  * @request_new: hint that new secrets (instead of cached or stored secrets) 
  *  should be returned
- * @callback: a function to be called when the update completes
+ * @callback: (scope async): a function to be called when the update completes
  * @user_data: caller-specific data to be passed to @callback
  *
  * Request the connection's secrets.
@@ -483,8 +483,8 @@ nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class)
                              G_SIGNAL_RUN_FIRST,
                              G_STRUCT_OFFSET (NMRemoteConnectionClass, updated),
                              NULL, NULL,
-                             g_cclosure_marshal_VOID__BOXED,
-                             G_TYPE_NONE, 1, DBUS_TYPE_G_MAP_OF_MAP_OF_VARIANT);
+                             g_cclosure_marshal_VOID__VOID,
+                             G_TYPE_NONE, 0);
 
        signals[REMOVED] = 
                g_signal_new (NM_REMOTE_CONNECTION_REMOVED,
@@ -494,5 +494,4 @@ nm_remote_connection_class_init (NMRemoteConnectionClass *remote_class)
                              NULL, NULL,
                              g_cclosure_marshal_VOID__VOID,
                              G_TYPE_NONE, 0);
-
 }
index e4b0bc5..630e0ce 100644 (file)
@@ -168,7 +168,7 @@ add_connection_info_complete (NMRemoteSettings *self,
  *
  * Returns the %NMRemoteConnection representing the connection at @path.
  *
- * Returns: the remote connection object on success, or NULL if the object was
+ * Returns: (transfer none): the remote connection object on success, or NULL if the object was
  *  not known
  **/
 NMRemoteConnection *
@@ -366,7 +366,7 @@ fetch_connections (gpointer user_data)
  * nm_remote_settings_list_connections:
  * @settings: the %NMRemoteSettings
  *
- * Returns: all connections in the remote settings service, represented as
+ * Returns: (transfer container) (element-type NMClient.RemoteConnection): all connections in the remote settings service, represented as
  * %NMRemoteConnection instances
  **/
 GSList *
@@ -407,12 +407,13 @@ add_connection_done (DBusGProxy *proxy,
 
        g_free (path);
 }
+
 /**
  * nm_remote_settings_add_connection:
  * @settings: the %NMRemoteSettings
  * @connection: the connection to add. Note that this object's settings will be
  *   added, not the object itself
- * @callback: callback to be called when the add operation completes
+ * @callback: (scope async): callback to be called when the add operation completes
  * @user_data: caller-specific data passed to @callback
  *
  * Requests that the remote settings service add the given settings to a new
@@ -513,7 +514,7 @@ save_hostname_cb (DBusGProxy *proxy,
  * @settings: the %NMRemoteSettings
  * @hostname: the new persistent hostname to set, or NULL to clear any existing
  *  persistent hostname
- * @callback: callback to be called when the hostname operation completes
+ * @callback: (scope async): callback to be called when the hostname operation completes
  * @user_data: caller-specific data passed to @callback
  *
  * Requests that the machine's persistent hostname be set to the specified value
@@ -637,7 +638,7 @@ get_all_cb  (DBusGProxy *proxy,
 
 /**
  * nm_remote_settings_new:
- * @bus: a valid and connected D-Bus connection
+ * @bus: (allow-none): a valid and connected D-Bus connection
  *
  * Creates a new object representing the remote settings service.
  *
@@ -646,7 +647,8 @@ get_all_cb  (DBusGProxy *proxy,
 NMRemoteSettings *
 nm_remote_settings_new (DBusGConnection *bus)
 {
-       g_return_val_if_fail (bus != NULL, NULL);
+       if (bus == NULL)
+               bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL);
 
        return (NMRemoteSettings *) g_object_new (NM_TYPE_REMOTE_SETTINGS,
                                                  NM_REMOTE_SETTINGS_BUS, bus,
index b38266d..2bf748a 100644 (file)
@@ -115,7 +115,7 @@ GSList * nm_remote_settings_list_connections (NMRemoteSettings *settings);
 NMRemoteConnection * nm_remote_settings_get_connection_by_path (NMRemoteSettings *settings,
                                                                 const char *path);
 
-gboolean nm_remote_settings_add_connection (NMRemoteSettings *self,
+gboolean nm_remote_settings_add_connection (NMRemoteSettings *settings,
                                             NMConnection *connection,
                                             NMRemoteSettingsAddConnectionFunc callback,
                                             gpointer user_data);
index cf9e084..923c436 100644 (file)
@@ -52,7 +52,7 @@ nm_ssid_get_type (void)
        static GType our_type = 0;
 
        if (our_type == 0)
-               our_type = g_boxed_type_register_static (g_intern_static_string ("nm-ssid"),
+               our_type = g_boxed_type_register_static (g_intern_static_string ("NMSsid"),
                                                         (GBoxedCopyFunc) nm_ssid_copy,
                                                         (GBoxedFreeFunc) nm_ssid_free);
        return our_type;
@@ -105,7 +105,7 @@ nm_uint_array_get_type (void)
        static GType our_type = 0;
 
        if (our_type == 0)
-               our_type = g_boxed_type_register_static (g_intern_static_string ("nm-uint-array"),
+               our_type = g_boxed_type_register_static (g_intern_static_string ("NMUintArray"),
                                                         (GBoxedCopyFunc) nm_uint_array_copy,
                                                         (GBoxedFreeFunc) nm_uint_array_free);
        return our_type;
@@ -163,7 +163,7 @@ nm_string_array_get_type (void)
        static GType our_type = 0;
 
        if (our_type == 0)
-               our_type = g_boxed_type_register_static (g_intern_static_string ("nm-string-array"),
+               our_type = g_boxed_type_register_static (g_intern_static_string ("NMStringArray"),
                                                         (GBoxedCopyFunc) nm_string_array_copy,
                                                         (GBoxedFreeFunc) nm_string_array_free);
        return our_type;
@@ -224,7 +224,7 @@ nm_object_array_get_type (void)
        static GType our_type = 0;
 
        if (our_type == 0)
-               our_type = g_boxed_type_register_static (g_intern_static_string ("nm-object-array"),
+               our_type = g_boxed_type_register_static (g_intern_static_string ("NMObjectArray"),
                                                         (GBoxedCopyFunc) nm_object_array_copy,
                                                         (GBoxedFreeFunc) nm_object_array_free);
        return our_type;
@@ -306,7 +306,7 @@ nm_ip6_address_object_array_get_type (void)
        static GType our_type = 0;
 
        if (our_type == 0)
-               our_type = g_boxed_type_register_static (g_intern_static_string ("nm-ip6-address-object-array"),
+               our_type = g_boxed_type_register_static (g_intern_static_string ("NMIP6AddressObjectArray"),
                                                         (GBoxedCopyFunc) nm_ip6_address_object_array_copy,
                                                         (GBoxedFreeFunc) nm_ip6_address_object_array_free);
        return our_type;
@@ -348,7 +348,7 @@ nm_ip6_address_array_get_type (void)
        static GType our_type = 0;
 
        if (our_type == 0)
-               our_type = g_boxed_type_register_static (g_intern_static_string ("nm-ip6-address-array"),
+               our_type = g_boxed_type_register_static (g_intern_static_string ("NMIP6AddressArray"),
                                                         (GBoxedCopyFunc) nm_ip6_address_array_copy,
                                                         (GBoxedFreeFunc) nm_ip6_address_array_free);
        return our_type;
@@ -415,7 +415,7 @@ nm_ip6_route_object_array_get_type (void)
        static GType our_type = 0;
 
        if (our_type == 0)
-               our_type = g_boxed_type_register_static (g_intern_static_string ("nm-ip6-route-object-array"),
+               our_type = g_boxed_type_register_static (g_intern_static_string ("NMIP6RouteObjectArray"),
                                                         (GBoxedCopyFunc) nm_ip6_route_object_array_copy,
                                                         (GBoxedFreeFunc) nm_ip6_route_object_array_free);
        return our_type;
index fdadc75..38109c0 100644 (file)
@@ -31,12 +31,15 @@ libnm_util_include_HEADERS =                \
        nm-setting-vpn.h                \
        nm-utils.h
 
-libnm_util_la_SOURCES=                 \
-       crypto.c                        \
+libnm_util_la_private_headers = \
        crypto.h                        \
+       nm-param-spec-specialized.h     \
+       nm-utils-private.h
+
+libnm_util_la_csources = \
+       crypto.c                        \
        nm-connection.c                 \
        nm-param-spec-specialized.c     \
-       nm-param-spec-specialized.h \
        nm-setting.c                    \
        nm-setting-8021x.c              \
        nm-setting-bluetooth.c          \
@@ -54,14 +57,16 @@ libnm_util_la_SOURCES=                      \
        nm-setting-wireless.c           \
        nm-setting-wireless-security.c  \
        nm-setting-vpn.c                \
-       nm-utils.c                      \
-       nm-utils-private.h \
-       $(libnm_util_include_HEADERS)
+       nm-utils.c
+
+libnm_util_la_SOURCES = \
+       $(libnm_util_la_csources) \
+       $(libnm_util_la_private_headers)
 
 libnm_util_la_LIBADD = $(GLIB_LIBS) $(DBUS_LIBS) $(UUID_LIBS)
 
 libnm_util_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-util.ver \
-       -version-info "7:0:6"
+       -version-info "8:0:7"
 
 if WITH_GNUTLS
 libnm_util_la_SOURCES += crypto_gnutls.c
@@ -104,12 +109,36 @@ libtest_crypto_la_CPPFLAGS += $(NSS_CFLAGS)
 libtest_crypto_la_LIBADD += $(NSS_LIBS)
 endif
 
-
-
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libnm-util.pc
 
 DISTCLEANFILES = libnm-util.pc
+CLEANFILES = 
 
 EXTRA_DIST = libnm-util.pc.in libnm-util.ver
 
+-include $(INTROSPECTION_MAKEFILE)
+INTROSPECTION_GIRS =
+INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir)
+INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
+
+if HAVE_INTROSPECTION
+introspection_sources = $(libnm_util_include_HEADERS) $(libnm_util_la_csources) $(top_srcdir)/include/NetworkManager.h $(top_srcdir)/include/NetworkManagerVPN.h
+
+NetworkManager-1.0.gir: libnm-util.la
+NetworkManager_1_0_gir_INCLUDES = GObject-2.0 DBusGLib-1.0
+NetworkManager_1_0_gir_PACKAGES = gobject-2.0 dbus-glib-1
+NetworkManager_1_0_gir_CFLAGS = $(INCLUDES)
+NetworkManager_1_0_gir_LIBS = libnm-util.la
+NetworkManager_1_0_gir_FILES = $(introspection_sources)
+NetworkManager_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm_
+INTROSPECTION_GIRS += NetworkManager-1.0.gir
+
+girdir = $(datadir)/gir-1.0
+gir_DATA = $(INTROSPECTION_GIRS)
+
+typelibdir = $(libdir)/girepository-1.0
+typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+
+CLEANFILES += $(gir_DATA) $(typelib_DATA)
+endif
index 2a8181b..2c71f37 100644 (file)
@@ -170,6 +170,7 @@ global:
        nm_setting_ip4_config_get_dhcp_send_hostname;
        nm_setting_ip4_config_get_never_default;
        nm_setting_ip4_config_get_may_fail;
+       nm_ip6_address_get_type;
        nm_ip6_address_new;
        nm_ip6_address_dup;
        nm_ip6_address_ref;
@@ -181,6 +182,7 @@ global:
        nm_ip6_address_set_gateway;
        nm_ip6_address_get_prefix;
        nm_ip6_address_set_prefix;
+       nm_ip6_route_get_type;
        nm_ip6_route_new;
        nm_ip6_route_dup;
        nm_ip6_route_ref;
@@ -388,8 +390,9 @@ global:
        nm_ip4_address_compare;
        nm_ip4_address_dup;
        nm_ip4_address_get_address;
-       nm_ip4_address_get_prefix;
        nm_ip4_address_get_gateway;
+       nm_ip4_address_get_prefix;
+       nm_ip4_address_get_type;
        nm_ip4_address_new;
        nm_ip4_address_ref;
        nm_ip4_address_set_address;
@@ -402,6 +405,7 @@ global:
        nm_ip4_route_get_prefix;
        nm_ip4_route_get_next_hop;
        nm_ip4_route_get_metric;
+       nm_ip4_route_get_type;
        nm_ip4_route_new;
        nm_ip4_route_ref;
        nm_ip4_route_unref;
index 3aa10c6..3976628 100644 (file)
@@ -350,7 +350,7 @@ nm_connection_lookup_setting_type_by_quark (GQuark error_quark)
  *
  * Create a new #NMSetting object of the desired type, given a setting name.
  *
- * Returns: the new setting object, or NULL if the setting name was unknown
+ * Returns: (transfer full): the new setting object, or NULL if the setting name was unknown
  **/
 NMSetting *
 nm_connection_create_setting (const char *name)
@@ -384,7 +384,7 @@ parse_one_setting (gpointer key, gpointer value, gpointer user_data)
 /**
  * nm_connection_add_setting:
  * @connection: a #NMConnection
- * @setting: the #NMSetting to add to the connection object
+ * @setting: (transfer full): the #NMSetting to add to the connection object
  *
  * Adds a #NMSetting to the connection, replacing any previous #NMSetting of the
  * same name which has previously been added to the #NMConnection.  The
@@ -426,7 +426,7 @@ nm_connection_remove_setting (NMConnection *connection, GType setting_type)
  * Gets the #NMSetting with the given #GType, if one has been previously added
  * to the #NMConnection.
  *
- * Returns: the #NMSetting, or NULL if no setting of that type was previously
+ * Returns: (transfer none): the #NMSetting, or NULL if no setting of that type was previously
  * added to the #NMConnection
  **/
 NMSetting *
@@ -447,7 +447,7 @@ nm_connection_get_setting (NMConnection *connection, GType setting_type)
  * Gets the #NMSetting with the given name, if one has been previously added
  * the the #NMConnection.
  *
- * Returns: the #NMSetting, or NULL if no setting with that name was previously
+ * Returns: (transfer none): the #NMSetting, or NULL if no setting with that name was previously
  * added to the #NMConnection
  **/
 NMSetting *
@@ -493,7 +493,7 @@ validate_permissions_type (GHashTable *hash, GError **error)
 /**
  * nm_connection_replace_settings:
  * @connection: a #NMConnection
- * @new_settings: a #GHashTable of settings
+ * @new_settings: (element-type utf8 GLib.HashTable): a #GHashTable of settings
  * @error: location to store error, or %NULL
  *
  * Returns: %TRUE if the settings were valid and added to the connection, %FALSE
@@ -651,7 +651,7 @@ nm_connection_verify (NMConnection *connection, GError **error)
  * nm_connection_update_secrets:
  * @connection: the #NMConnection
  * @setting_name: the setting object name to which the secrets apply
- * @secrets: a #GHashTable mapping string:#GValue of setting property names and
+ * @secrets: (element-type utf8 GObject.Value): a #GHashTable mapping string:#GValue of setting property names and
  * secrets
  * @error: location to store error, or %NULL
  *
@@ -826,9 +826,10 @@ add_one_setting_to_hash (gpointer key, gpointer data, gpointer user_data)
  * are #GHashTables mapping string:GValue, each of which represents the
  * properties of the #NMSetting object.
  *
- * Returns: a new #GHashTable describing the connection, its settings, and
- * each setting's properties.  The caller owns the hash table and must unref
- * the hash table with g_hash_table_unref() when it is no longer needed.
+ * Returns: (transfer full) (element-type utf8 GLib.HashTable): a new 
+ * #GHashTable describing the connection, its settings, and each setting's
+ * properties.  The caller owns the hash table and must unref the hash table
+ * with g_hash_table_unref() when it is no longer needed.
  **/
 GHashTable *
 nm_connection_to_hash (NMConnection *connection)
@@ -869,7 +870,7 @@ for_each_setting (gpointer key, gpointer value, gpointer user_data)
 /**
  * nm_connection_for_each_setting_value:
  * @connection: the #NMConnection
- * @func: user-supplied function called for each setting's property
+ * @func: (scope call): user-supplied function called for each setting's property
  * @user_data: user data passed to @func at each invocation
  *
  * Iterates over the properties of each #NMSetting object in the #NMConnection,
@@ -994,7 +995,8 @@ nm_connection_new (void)
 
 /**
  * nm_connection_new_from_hash:
- * @hash: the #GHashTable describing the connection
+ * @hash: (element-type utf8 GLib.HashTable): the #GHashTable describing
+ * the connection
  * @error: on unsuccessful return, an error
  *
  * Creates a new #NMConnection from a hash table describing the connection.  See
@@ -1037,7 +1039,7 @@ duplicate_cb (gpointer key, gpointer value, gpointer user_data)
  *
  * Duplicates a #NMConnection.
  *
- * Returns: a new #NMConnection containing the same settings and properties
+ * Returns: (transfer full): a new #NMConnection containing the same settings and properties
  * as the source #NMConnection
  **/
 NMConnection *
index 186e41e..be124d9 100644 (file)
@@ -66,6 +66,8 @@ nm_setting_ip4_config_error_get_type (void)
        return etype;
 }
 
+G_DEFINE_BOXED_TYPE (NMIP4Address, nm_ip4_address, nm_ip4_address_dup, nm_ip4_address_unref)
+G_DEFINE_BOXED_TYPE (NMIP4Route, nm_ip4_route, nm_ip4_route_dup, nm_ip4_route_unref)
 
 G_DEFINE_TYPE (NMSettingIP4Config, nm_setting_ip4_config, NM_TYPE_SETTING)
 
index 80ddd47..91cf0ea 100644 (file)
@@ -74,6 +74,8 @@ GQuark nm_setting_ip4_config_error_quark (void);
 
 typedef struct NMIP4Address NMIP4Address;
 
+GType nm_ip4_address_get_type (void);
+
 NMIP4Address * nm_ip4_address_new         (void);
 NMIP4Address * nm_ip4_address_dup         (NMIP4Address *source);
 void           nm_ip4_address_ref         (NMIP4Address *address);
@@ -95,6 +97,8 @@ void           nm_ip4_address_set_gateway (NMIP4Address *address,
 
 typedef struct NMIP4Route NMIP4Route;
 
+GType nm_ip4_route_get_type (void);
+
 NMIP4Route * nm_ip4_route_new          (void);
 NMIP4Route * nm_ip4_route_dup          (NMIP4Route *route);
 void         nm_ip4_route_ref          (NMIP4Route *route);
index e8af058..10fe3cc 100644 (file)
@@ -65,6 +65,8 @@ nm_setting_ip6_config_error_get_type (void)
        return etype;
 }
 
+G_DEFINE_BOXED_TYPE (NMIP6Address, nm_ip6_address, nm_ip6_address_dup, nm_ip6_address_unref)
+G_DEFINE_BOXED_TYPE (NMIP6Route, nm_ip6_route, nm_ip6_route_dup, nm_ip6_route_unref)
 
 G_DEFINE_TYPE (NMSettingIP6Config, nm_setting_ip6_config, NM_TYPE_SETTING)
 
index e3e286e..b9733b4 100644 (file)
@@ -74,6 +74,8 @@ GQuark nm_setting_ip6_config_error_quark (void);
 
 typedef struct NMIP6Address NMIP6Address;
 
+GType nm_ip6_address_get_type (void);
+
 NMIP6Address *         nm_ip6_address_new         (void);
 NMIP6Address *         nm_ip6_address_dup         (NMIP6Address *source);
 void                   nm_ip6_address_ref         (NMIP6Address *address);
@@ -95,6 +97,8 @@ void                   nm_ip6_address_set_gateway (NMIP6Address *address,
 
 typedef struct NMIP6Route NMIP6Route;
 
+GType nm_ip6_route_get_type (void);
+
 NMIP6Route *           nm_ip6_route_new          (void);
 NMIP6Route *           nm_ip6_route_dup          (NMIP6Route *route);
 void                   nm_ip6_route_ref          (NMIP6Route *route);
index 53b609e..4b8a1dc 100644 (file)
@@ -158,9 +158,17 @@ nm_setting_vpn_remove_data_item (NMSettingVPN *setting, const char *key)
        g_hash_table_remove (NM_SETTING_VPN_GET_PRIVATE (setting)->data, key);
 }
 
+/**
+ * nm_setting_vpn_foreach_data_item:
+ * @setting: a #NMSettingVPN
+ * @func: (scope call): an user provided function
+ * @user_data:
+ *
+ * Iterates all data items stored in this setting
+ */
 void
 nm_setting_vpn_foreach_data_item (NMSettingVPN *setting,
-                                  VPNIterFunc func,
+                                  NMVPNIterFunc func,
                                   gpointer user_data)
 {
        g_return_if_fail (NM_IS_SETTING_VPN (setting));
@@ -200,9 +208,17 @@ nm_setting_vpn_remove_secret (NMSettingVPN *setting, const char *key)
        g_hash_table_remove (NM_SETTING_VPN_GET_PRIVATE (setting)->secrets, key);
 }
 
+/**
+ * nm_setting_vpn_foreach_secret:
+ * @setting: a #NMSettingVPN
+ * @func: (scope call): an user provided function
+ * @user_data:
+ *
+ * Iterates all secrets stored in this setting.
+ */
 void
 nm_setting_vpn_foreach_secret (NMSettingVPN *setting,
-                               VPNIterFunc func,
+                               NMVPNIterFunc func,
                                gpointer user_data)
 {
        g_return_if_fail (NM_IS_SETTING_VPN (setting));
index 9c684bb..c848696 100644 (file)
@@ -71,7 +71,9 @@ typedef struct {
        void (*_reserved4) (void);
 } NMSettingVPNClass;
 
-typedef void (*VPNIterFunc) (const char *key, const char *value, gpointer user_data);
+typedef void (*NMVPNIterFunc) (const char *key, const char *value, gpointer user_data);
+/* For backward compatibility */
+typedef NMVPNIterFunc VPNIterFunc;
 
 GType nm_setting_vpn_get_type (void);
 
@@ -87,7 +89,7 @@ const char *      nm_setting_vpn_get_data_item     (NMSettingVPN *setting,
 void              nm_setting_vpn_remove_data_item  (NMSettingVPN *setting,
                                                     const char *key);
 void              nm_setting_vpn_foreach_data_item (NMSettingVPN *setting,
-                                                    VPNIterFunc func,
+                                                    NMVPNIterFunc func,
                                                     gpointer user_data);
 
 void              nm_setting_vpn_add_secret        (NMSettingVPN *setting,
@@ -98,7 +100,7 @@ const char *      nm_setting_vpn_get_secret        (NMSettingVPN *setting,
 void              nm_setting_vpn_remove_secret     (NMSettingVPN *setting,
                                                     const char *key);
 void              nm_setting_vpn_foreach_secret    (NMSettingVPN *setting,
-                                                    VPNIterFunc func,
+                                                    NMVPNIterFunc func,
                                                     gpointer user_data);
 
 G_END_DECLS
index 980a65b..f0ff42c 100644 (file)
@@ -112,7 +112,7 @@ destroy_gvalue (gpointer data)
  * name to a GValue describing that property, suitable for marshalling over
  * D-Bus or serializing.  The mapping is string:GValue.
  * 
- * Returns: a new #GHashTable describing the setting's properties
+ * Returns: (transfer full) (element-type utf8 GObject.Value): a new #GHashTable describing the setting's properties
  **/
 GHashTable *
 nm_setting_to_hash (NMSetting *setting)
@@ -254,7 +254,7 @@ duplicate_setting (NMSetting *setting,
  *
  * Duplicates a #NMSetting.
  *
- * Returns: a new #NMSetting containing the same properties and values as the
+ * Returns: (transfer full): a new #NMSetting containing the same properties and values as the
  * source #NMSetting
  **/
 NMSetting *
@@ -390,7 +390,7 @@ nm_setting_compare (NMSetting *a,
 /**
  * nm_setting_enumerate_values:
  * @setting: the #NMSetting
- * @func: user-supplied function called for each property of the setting
+ * @func: (scope call): user-supplied function called for each property of the setting
  * @user_data: user data passed to @func at each invocation
  *
  * Iterates over each property of the #NMSetting object, calling the supplied
@@ -465,7 +465,7 @@ nm_setting_clear_secrets (NMSetting *setting)
  * guide to what secrets may be required, because in some circumstances, there
  * is no way to conclusively determine exactly which secrets are needed.
  *
- * Returns: a #GPtrArray containing the property names of secrets of the
+ * Returns: (transfer full) (element-type utf8): a #GPtrArray containing the property names of secrets of the
  * #NMSetting which may be required; the caller owns the array
  * and must free the each array element with g_free(), as well as the array
  * itself with g_ptr_array_free()
index 9c3662f..87c5d5f 100644 (file)
@@ -487,7 +487,7 @@ value_dup (gpointer key, gpointer val, gpointer user_data)
  *
  * Utility function to duplicate a hash table of GValues.
  *
- * Returns: a newly allocated duplicated #GHashTable, caller must free the
+ * Returns: (transfer container) (element-type utf8 GObject.Value): a newly allocated duplicated #GHashTable, caller must free the
  * returned hash with g_hash_table_unref() or g_hash_table_destroy()
  **/
 GHashTable *
@@ -1359,7 +1359,7 @@ nm_utils_security_valid (NMUtilsSecurityType type,
  * this serialization is not guaranteed to be stable and the #GArray may be
  * extended in the future.
  *
- * Returns: a newly allocated #GSList of #NMIP4Address objects
+ * Returns: (transfer full) (element-type NetworkManager.IP4Address): a newly allocated #GSList of #NMIP4Address objects
  **/
 GSList *
 nm_utils_ip4_addresses_from_gvalue (const GValue *value)
@@ -1441,7 +1441,7 @@ nm_utils_ip4_addresses_to_gvalue (GSList *list, GValue *value)
  * format of this serialization is not guaranteed to be stable and may be
  * extended in the future.
  *
- * Returns: a newly allocated #GSList of #NMIP4Route objects
+ * Returns: (transfer full) (element-type NetworkManager.IP4Route): a newly allocated #GSList of #NMIP4Route objects
  **/
 GSList *
 nm_utils_ip4_routes_from_gvalue (const GValue *value)
@@ -1604,7 +1604,7 @@ nm_utils_ip4_get_default_prefix (guint32 ip)
  * this serialization is not guaranteed to be stable and the #GValueArray may be
  * extended in the future.
  *
- * Returns: a newly allocated #GSList of #NMIP6Address objects
+ * Returns: (transfer full) (element-type NetworkManager.IP6Address): a newly allocated #GSList of #NMIP6Address objects
  **/
 GSList *
 nm_utils_ip6_addresses_from_gvalue (const GValue *value)
@@ -1747,7 +1747,7 @@ nm_utils_ip6_addresses_to_gvalue (GSList *list, GValue *value)
  * into a GSList of #NMIP6Route objects.  The specific format of this serialization
  * is not guaranteed to be stable and may be extended in the future.
  *
- * Returns: a newly allocated #GSList of #NMIP6Route objects
+ * Returns: (transfer full) (element-type NetworkManager.IP6Route): a newly allocated #GSList of #NMIP6Route objects
  **/
 GSList *
 nm_utils_ip6_routes_from_gvalue (const GValue *value)
@@ -1863,6 +1863,18 @@ nm_utils_ip6_routes_to_gvalue (GSList *list, GValue *value)
        g_value_take_boxed (value, routes);
 }
 
+/* FIXME: the Posix namespace does not exist, and thus neither does
+   the in6_addr struct. Marking (skip) for now */
+/**
+ * nm_utils_ip6_dns_from_gvalue: (skip):
+ * @value: a #GValue
+ *
+ * Converts a #GValue containing a #GPtrArray of IP6 DNS, represented as
+ * #GByteArray<!-- -->s into a #GSList of #in6_addr<!-- -->s.
+ *
+ * Returns: (transfer full) (element-type Posix.in6_addr): a #GSList of IP6
+ * addresses.
+ */
 GSList *
 nm_utils_ip6_dns_from_gvalue (const GValue *value)
 {
@@ -2046,8 +2058,8 @@ utils_bin2hexstr (const char *bytes, int len, int final_len)
 /**
  * nm_utils_rsa_key_encrypt:
  * @data: RSA private key data to be encrypted
- * @in_password: existing password to use, if any
- * @out_password: if @in_password was NULL, a random password will be generated
+ * @in_password: (allow-none): existing password to use, if any
+ * @out_password: (out) (allow-none): if @in_password was NULL, a random password will be generated
  *  and returned in this argument
  * @error: detailed error information on return, if an error occurred
  *
@@ -2055,7 +2067,7 @@ utils_bin2hexstr (const char *bytes, int len, int final_len)
  * a password if no password was given) and converts the data to PEM format
  * suitable for writing to a file.
  *
- * Returns: on success, PEM-formatted data suitable for writing to a PEM-formatted
+ * Returns: (transfer full): on success, PEM-formatted data suitable for writing to a PEM-formatted
  * certificate/private key file.
  **/
 GByteArray *
diff --git a/m4/introspection.m4 b/m4/introspection.m4
new file mode 100644 (file)
index 0000000..589721c
--- /dev/null
@@ -0,0 +1,94 @@
+dnl -*- mode: autoconf -*-
+dnl Copyright 2009 Johan Dahlin
+dnl
+dnl This file is free software; the author(s) gives unlimited
+dnl permission to copy and/or distribute it, with or without
+dnl modifications, as long as this notice is preserved.
+dnl
+
+# serial 1
+
+m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+[
+    AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+    AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+    AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
+
+    dnl enable/disable introspection
+    m4_if([$2], [require],
+    [dnl
+        enable_introspection=yes
+    ],[dnl
+        AC_ARG_ENABLE(introspection,
+                  AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
+                                 [Enable introspection for this build]),, 
+                                 [enable_introspection=auto])
+    ])dnl
+
+    AC_MSG_CHECKING([for gobject-introspection])
+
+    dnl presence/version checking
+    AS_CASE([$enable_introspection],
+    [no], [dnl
+        found_introspection="no (disabled, use --enable-introspection to enable)"
+    ],dnl
+    [yes],[dnl
+        PKG_CHECK_EXISTS([gobject-introspection-1.0],,
+                         AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
+        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
+                         found_introspection=yes,
+                         AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
+    ],dnl
+    [auto],[dnl
+        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
+    ],dnl
+    [dnl       
+        AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
+    ])dnl
+
+    AC_MSG_RESULT([$found_introspection])
+
+    INTROSPECTION_SCANNER=
+    INTROSPECTION_COMPILER=
+    INTROSPECTION_GENERATE=
+    INTROSPECTION_GIRDIR=
+    INTROSPECTION_TYPELIBDIR=
+    if test "x$found_introspection" = "xyes"; then
+       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+    fi
+    AC_SUBST(INTROSPECTION_SCANNER)
+    AC_SUBST(INTROSPECTION_COMPILER)
+    AC_SUBST(INTROSPECTION_GENERATE)
+    AC_SUBST(INTROSPECTION_GIRDIR)
+    AC_SUBST(INTROSPECTION_TYPELIBDIR)
+    AC_SUBST(INTROSPECTION_CFLAGS)
+    AC_SUBST(INTROSPECTION_LIBS)
+    AC_SUBST(INTROSPECTION_MAKEFILE)
+
+    AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
+])
+
+
+dnl Usage:
+dnl   GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
+
+AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
+[
+  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
+])
+
+dnl Usage:
+dnl   GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
+
+
+AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
+[
+  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
+])