G_DEFINE_ABSTRACT_TYPE (GInetAddress, g_inet_address, G_TYPE_OBJECT);
+enum
+{
+ PROP_0,
+ PROP_IS_ANY,
+ PROP_IS_LINKLOCAL,
+ PROP_IS_LOOPBACK,
+ PROP_IS_SITELOCAL,
+ PROP_IS_MULTICAST,
+ PROP_IS_MC_GLOBAL,
+ PROP_IS_MC_LINKLOCAL,
+ PROP_IS_MC_NODELOCAL,
+ PROP_IS_MC_ORGLOCAL,
+ PROP_IS_MC_SITELOCAL,
+};
+static void
+g_inet_address_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ GInetAddress *address = G_INET_ADDRESS (object);
+ switch (prop_id)
+ {
+ case PROP_IS_ANY:
+ g_value_set_boolean (value, G_INET_ADDRESS_GET_CLASS (address)->is_any (address));
+ break;
+ case PROP_IS_LINKLOCAL:
+ g_value_set_boolean (value, G_INET_ADDRESS_GET_CLASS (address)->is_linklocal (address));
+ break;
-static void
-g_inet_address_class_init (GInetAddressClass *klass)
-{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+ case PROP_IS_LOOPBACK:
+ g_value_set_boolean (value, G_INET_ADDRESS_GET_CLASS (address)->is_loopback (address));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
}
static void
-g_inet_address_init (GInetAddress *address)
+g_inet_address_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
+ GInetAddress *address G_GNUC_UNUSED = G_INET_ADDRESS (object);
+ switch (prop_id)
+ {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
}
-/* ************************************************************************* */
-/* Public Functions */
-
-GInetAddress *
-g_inet_address_resolve (const char *host,
- GCancellable *cancellable,
- GError **error)
+static void
+g_inet_address_class_init (GInetAddressClass *klass)
{
- return NULL;
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->get_property = g_inet_address_get_property;
+ gobject_class->set_property = g_inet_address_set_property;
+
+ g_object_class_install_property (gobject_class, PROP_IS_ANY,
+ g_param_spec_boolean ("is-any",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
+
+ g_object_class_install_property (gobject_class, PROP_IS_LINKLOCAL,
+ g_param_spec_boolean ("is-link-local",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
+
+ g_object_class_install_property (gobject_class, PROP_IS_LOOPBACK,
+ g_param_spec_boolean ("is-loopback",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
+
+ g_object_class_install_property (gobject_class, PROP_IS_SITELOCAL,
+ g_param_spec_boolean ("is-site-local",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
+
+ g_object_class_install_property (gobject_class, PROP_IS_MULTICAST,
+ g_param_spec_boolean ("is-multicast",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
+
+ g_object_class_install_property (gobject_class, PROP_IS_MC_GLOBAL,
+ g_param_spec_boolean ("is-mc-global",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
+
+ g_object_class_install_property (gobject_class, PROP_IS_MC_LINKLOCAL,
+ g_param_spec_boolean ("is-mc-link-local",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
+
+ g_object_class_install_property (gobject_class, PROP_IS_MC_NODELOCAL,
+ g_param_spec_boolean ("is-mc-node-local",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
+
+ g_object_class_install_property (gobject_class, PROP_IS_MC_ORGLOCAL,
+ g_param_spec_boolean ("is-mc-org-local",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
+
+ g_object_class_install_property (gobject_class, PROP_IS_MC_SITELOCAL,
+ g_param_spec_boolean ("is-mc-site-local",
+ "",
+ "",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_STATIC_NAME));
}
-void
-g_inet_address_resolve_async (const char *host,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
+static void
+g_inet_address_init (GInetAddress *address)
{
}
-GInetAddress *
-g_inet_address_resolve_finish (GInetAddress *address,
- GAsyncResult *result,
- GError **error)
-{
- return NULL;
-}
+/* ******************************************* */
+/* Getters for properties */
-char *
-g_inet_address_lookup_reverse (GInetAddress *address,
- GCancellable *cancellable,
- GError **error)
+static gboolean
+get_boolean_property (GInetAddress *address, const gchar *property)
{
- return NULL;
-}
+ gboolean value;
-void
-g_inet_address_lookup_reverse_async (GInetAddress *address,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data)
-{
+ g_return_val_if_fail (G_IS_INET_ADDRESS (address), FALSE);
-}
+ g_object_get (address, property, &value, NULL);
-char *
-g_inet_address_lookup_reverse_finish (GInetAddress *address,
- GAsyncResult *result,
- GError **error)
-{
- return NULL;
+ return value;
}
-/* ******************************************* */
-/* Getteres for properties*/
-
gboolean
-g_inet_address_is_any_local (GInetAddress *address)
+g_inet_address_is_any (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-any");
}
gboolean
-g_inet_address_is_link_local (GInetAddress *address)
+g_inet_address_is_linklocal (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-link-local");
}
gboolean
g_inet_address_is_loopback (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-loopback");
}
gboolean
g_inet_address_is_sitelocal (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-site-local");
}
gboolean
g_inet_address_is_multicast (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-multicast");
}
gboolean
g_inet_address_is_mc_global (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-mc-global");
}
gboolean
g_inet_address_is_mc_linklocal (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-mc-link-local");
}
gboolean
g_inet_address_is_mc_nodelocal (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-mc-node-local");
}
gboolean
g_inet_address_is_mc_orglocal (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-mc-org-local");
}
gboolean
g_inet_address_is_mc_sitelocal (GInetAddress *address)
{
- return FALSE;
+ return get_boolean_property (address, "is-mc-site-local");
}