[geocode-glib] ipclient: Add server URI as a property
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geocode-glib] ipclient: Add server URI as a property
- Date: Wed, 13 Feb 2013 13:08:00 +0000 (UTC)
commit 691486abfc05b3a73e6b8b247034105e39d26d3d
Author: Satabdi Das <satabdidas gmail com>
Date: Mon Feb 11 16:34:31 2013 +0530
ipclient: Add server URI as a property
To the GeocodeIpclient object
geocode-glib/geocode-ipclient.c | 63 ++++++++++++++++++++++++++++++++++++--
1 files changed, 59 insertions(+), 4 deletions(-)
---
diff --git a/geocode-glib/geocode-ipclient.c b/geocode-glib/geocode-ipclient.c
index 629498b..b1cf009 100644
--- a/geocode-glib/geocode-ipclient.c
+++ b/geocode-glib/geocode-ipclient.c
@@ -33,13 +33,60 @@
* Contains functions to get the geolocation corresponding to IP addresses from a server.
**/
+enum {
+ PROP_0,
+ PROP_SERVER,
+ N_PROPERTIES
+};
+
struct _GeocodeIpclientPrivate {
char *ip;
+ char *server;
};
G_DEFINE_TYPE (GeocodeIpclient, geocode_ipclient, G_TYPE_OBJECT)
static void
+geocode_ipclient_set_property (GObject *gipclient,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GeocodeIpclient *ipclient = (GeocodeIpclient *) gipclient;
+
+ switch (property_id) {
+ case PROP_SERVER:
+ g_free (ipclient->priv->server);
+ ipclient->priv->server = g_value_dup_string (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (gipclient,
+ property_id,
+ pspec);
+ break;
+ }
+}
+
+static void
+geocode_ipclient_get_property (GObject *gipclient,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GeocodeIpclient *ipclient = (GeocodeIpclient *) gipclient;
+ switch (property_id) {
+ case PROP_SERVER:
+ g_value_set_string (value, ipclient->priv->server);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (gipclient,
+ property_id,
+ pspec);
+ break;
+ }
+}
+
+static void
geocode_ipclient_finalize (GObject *gipclient)
{
GeocodeIpclient *ipclient = (GeocodeIpclient *) gipclient;
@@ -55,8 +102,18 @@ geocode_ipclient_class_init (GeocodeIpclientClass *klass)
GObjectClass *gipclient_class = G_OBJECT_CLASS (klass);
gipclient_class->finalize = geocode_ipclient_finalize;
+ gipclient_class->set_property = geocode_ipclient_set_property;
+ gipclient_class->get_property = geocode_ipclient_get_property;
g_type_class_add_private (klass, sizeof (GeocodeIpclientPrivate));
+
+ g_object_class_install_property (gipclient_class,
+ PROP_SERVER,
+ g_param_spec_string ("server",
+ "server uri",
+ "server uri",
+ "http://127.0.0.1:12345/cgi-bin/geoip-lookup",
+ G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
}
static void
@@ -109,8 +166,6 @@ get_search_query (GeocodeIpclient *ipclient)
char *query_string;
char *uri;
const char *ipaddress;
- /* FIXME: the server uri needs to be made a property */
- const char *server_uri = "http://127.0.0.1:12345/cgi-bin/geoip-lookup";
ipaddress = ipclient->priv->ip;
if (ipaddress) {
@@ -119,10 +174,10 @@ get_search_query (GeocodeIpclient *ipclient)
query_string = soup_form_encode_hash (ht);
g_hash_table_destroy (ht);
- uri = g_strdup_printf ("%s?%s", server_uri, query_string);
+ uri = g_strdup_printf ("%s?%s", ipclient->priv->server, query_string);
g_free (query_string);
} else
- uri = g_strdup (server_uri);
+ uri = g_strdup (ipclient->priv->server);
ret = g_file_new_for_uri (uri);
g_free (uri);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]