>From f1483a80434ea1b16efaefcb2ca0c5cb47aef9a8 Mon Sep 17 00:00:00 2001 From: Adrien Bustany Date: Mon, 31 May 2010 10:15:22 -0400 Subject: [PATCH 1/2] libtracker-common: Fix cheader_filename in VAPI This commit sets the cheader_filename attribute of the classes bound in libtracker-common.vapi to use tracker-common.h, as direct inclusion of other files is now forbidden. --- src/libtracker-common/libtracker-common.vapi | 5 +- src/miners/flickr/tracker-config.c | 353 ++++++++++++++++++++++++++ 2 files changed, 356 insertions(+), 2 deletions(-) create mode 100644 src/miners/flickr/tracker-config.c diff --git a/src/libtracker-common/libtracker-common.vapi b/src/libtracker-common/libtracker-common.vapi index b1d738d..d737529 100644 --- a/src/libtracker-common/libtracker-common.vapi +++ b/src/libtracker-common/libtracker-common.vapi @@ -1,5 +1,6 @@ /* * Copyright (C) 2008-2009, Nokia + * Copyright (C) 2010, Adrien Bustany * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -18,10 +19,10 @@ */ namespace Tracker { - [CCode (cheader_filename = "libtracker-common/tracker-date-time.h")] + [CCode (cheader_filename = "libtracker-common/tracker-common.h")] public int string_to_date (string date_string, out int offset) throws DateError; - [CCode (cheader_filename = "libtracker-common/tracker-date-time.h")] + [CCode (cheader_filename = "libtracker-common/tracker-common.h")] public errordomain DateError { OFFSET, INVALID_ISO8601 diff --git a/src/miners/flickr/tracker-config.c b/src/miners/flickr/tracker-config.c new file mode 100644 index 0000000..ab2e608 --- /dev/null +++ b/src/miners/flickr/tracker-config.c @@ -0,0 +1,353 @@ +/* tracker-config.c generated by valac, the Vala compiler + * generated from tracker-config.vala, do not modify */ + + +#include +#include +#include +#include +#include + + +#define TRACKER_TYPE_CONFIG (tracker_config_get_type ()) +#define TRACKER_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TRACKER_TYPE_CONFIG, TrackerConfig)) +#define TRACKER_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TRACKER_TYPE_CONFIG, TrackerConfigClass)) +#define TRACKER_IS_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TRACKER_TYPE_CONFIG)) +#define TRACKER_IS_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TRACKER_TYPE_CONFIG)) +#define TRACKER_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TRACKER_TYPE_CONFIG, TrackerConfigClass)) + +typedef struct _TrackerConfig TrackerConfig; +typedef struct _TrackerConfigClass TrackerConfigClass; +typedef struct _TrackerConfigPrivate TrackerConfigPrivate; + +#define TRACKER_CONFIG_TYPE_DOWNLOAD_BEHAVIOUR (tracker_config_download_behaviour_get_type ()) + +#define TRACKER_CONFIG_TYPE_CONFIG_KEY (tracker_config_config_key_get_type ()) +typedef struct _TrackerConfigConfigKey TrackerConfigConfigKey; +#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) +#define _g_free0(var) (var = (g_free (var), NULL)) + +struct _TrackerConfig { + TrackerConfigFile parent_instance; + TrackerConfigPrivate * priv; +}; + +struct _TrackerConfigClass { + TrackerConfigFileClass parent_class; +}; + +struct _TrackerConfigPrivate { + guint _download_behaviour; +}; + +typedef enum { + TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_LAN, + TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_3G, + TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_EDGE, + TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_GPRS +} TrackerConfigDownloadBehaviour; + +struct _TrackerConfigConfigKey { + GType type; + char* property; + char* group; + char* key; +}; + + +static gpointer tracker_config_parent_class = NULL; + +GType tracker_config_get_type (void); +#define TRACKER_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TRACKER_TYPE_CONFIG, TrackerConfigPrivate)) +enum { + TRACKER_CONFIG_DUMMY_PROPERTY, + TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR +}; +GType tracker_config_download_behaviour_get_type (void); +#define TRACKER_CONFIG_DEFAULT_DOWNLOAD_BEHAVIOUR ((guint) TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_3G) +#define TRACKER_CONFIG_GROUP_GENERAL "General" +#define TRACKER_CONFIG_GROUP_NETWORK "Network" +#define TRACKER_CONFIG_TYPE_INT ((gint) G_TYPE_INT) +static GType tracker_config_config_key_get_type (void) G_GNUC_UNUSED; +static TrackerConfigConfigKey* tracker_config_config_key_dup (const TrackerConfigConfigKey* self); +static void tracker_config_config_key_free (TrackerConfigConfigKey* self); +static void tracker_config_config_key_copy (const TrackerConfigConfigKey* self, TrackerConfigConfigKey* dest); +static void tracker_config_config_key_destroy (TrackerConfigConfigKey* self); +void tracker_config_load (TrackerConfig* self, gboolean use_defaults); +static void tracker_config_real_changed (TrackerConfigFile* base); +static void tracker_config_create_with_defaults (TrackerConfig* self); +gboolean tracker_config_save (TrackerConfig* self); +TrackerConfig* tracker_config_new (void); +TrackerConfig* tracker_config_construct (GType object_type); +guint tracker_config_get_download_behaviour (TrackerConfig* self); +void tracker_config_set_download_behaviour (TrackerConfig* self, guint value); +static GObject * tracker_config_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); +static void tracker_config_finalize (GObject* obj); +static void tracker_config_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); +static void tracker_config_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); + +static const TrackerConfigConfigKey TRACKER_CONFIG_config_keys[1] = {{G_TYPE_INT, "download-behaviour", TRACKER_CONFIG_GROUP_NETWORK, "DownloadBehaviour"}}; + + +GType tracker_config_download_behaviour_get_type (void) { + static volatile gsize tracker_config_download_behaviour_type_id__volatile = 0; + if (g_once_init_enter (&tracker_config_download_behaviour_type_id__volatile)) { + static const GEnumValue values[] = {{TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_LAN, "TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_LAN", "lan"}, {TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_3G, "TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_3G", "3g"}, {TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_EDGE, "TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_EDGE", "edge"}, {TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_GPRS, "TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_GPRS", "gprs"}, {0, NULL, NULL}}; + GType tracker_config_download_behaviour_type_id; + tracker_config_download_behaviour_type_id = g_enum_register_static ("TrackerConfigDownloadBehaviour", values); + g_once_init_leave (&tracker_config_download_behaviour_type_id__volatile, tracker_config_download_behaviour_type_id); + } + return tracker_config_download_behaviour_type_id__volatile; +} + + +static void tracker_config_real_changed (TrackerConfigFile* base) { + TrackerConfig * self; + self = (TrackerConfig*) base; + tracker_config_load (self, FALSE); +} + + +void tracker_config_load (TrackerConfig* self, gboolean use_defaults) { + g_return_if_fail (self != NULL); + if (use_defaults) { + tracker_config_create_with_defaults (self); + } + if (!((TrackerConfigFile*) self)->file_exists) { + tracker_config_file_save (TRACKER_CONFIG_FILE (self)); + } + { + TrackerConfigConfigKey* key_collection; + int key_collection_length1; + int key_it; + key_collection = TRACKER_CONFIG_config_keys; + key_collection_length1 = G_N_ELEMENTS (TRACKER_CONFIG_config_keys); + for (key_it = 0; key_it < G_N_ELEMENTS (TRACKER_CONFIG_config_keys); key_it = key_it + 1) { + TrackerConfigConfigKey key; + key = key_collection[key_it]; + { + if (key.type == G_TYPE_INT) { + tracker_keyfile_object_load_int (self, key.property, ((TrackerConfigFile*) self)->key_file, key.group, key.key); + } else { + g_assert_not_reached (); + } + } + } + } +} + + +gboolean tracker_config_save (TrackerConfig* self) { + gboolean result = FALSE; + g_return_val_if_fail (self != NULL, FALSE); + if (((TrackerConfigFile*) self)->key_file == NULL) { + g_critical ("tracker-config.vala:73: Could not save config, GKeyFile was NULL, has " \ +"the config been loaded?"); + result = FALSE; + return result; + } + tracker_keyfile_object_save_int (self, "download-behaviour", ((TrackerConfigFile*) self)->key_file, TRACKER_CONFIG_GROUP_NETWORK, "DownloadBehaviour"); + result = tracker_config_file_save (TRACKER_CONFIG_FILE (self)); + return result; +} + + +static void tracker_config_create_with_defaults (TrackerConfig* self) { + GError * _inner_error_; + g_return_if_fail (self != NULL); + _inner_error_ = NULL; + { + g_key_file_has_key (((TrackerConfigFile*) self)->key_file, TRACKER_CONFIG_GROUP_NETWORK, "DownloadBehaviour", &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch19_g_error; + } + } + goto __finally19; + __catch19_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + gboolean _tmp0_ = FALSE; + if (!g_error_matches (e, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND)) { + _tmp0_ = !g_error_matches (e, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_GROUP_NOT_FOUND); + } else { + _tmp0_ = FALSE; + } + if (_tmp0_) { + g_critical ("tracker-config.vala:87: Could not load config default: %s", e->message); + } else { + g_key_file_set_integer (((TrackerConfigFile*) self)->key_file, TRACKER_CONFIG_GROUP_NETWORK, "DownloadBehaviour", (gint) TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_3G); + } + _g_error_free0 (e); + } + } + __finally19: + if (_inner_error_ != NULL) { + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return; + } +} + + +TrackerConfig* tracker_config_construct (GType object_type) { + TrackerConfig * self; + self = g_object_newv (object_type, 0, NULL); + return self; +} + + +TrackerConfig* tracker_config_new (void) { + return tracker_config_construct (TRACKER_TYPE_CONFIG); +} + + +guint tracker_config_get_download_behaviour (TrackerConfig* self) { + guint result; + g_return_val_if_fail (self != NULL, 0U); + result = self->priv->_download_behaviour; + return result; +} + + +void tracker_config_set_download_behaviour (TrackerConfig* self, guint value) { + gboolean _tmp0_ = FALSE; + g_return_if_fail (self != NULL); + if (value < ((guint) TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_LAN)) { + _tmp0_ = TRUE; + } else { + _tmp0_ = value > ((guint) TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR_GPRS); + } + if (_tmp0_) { + return; + } + self->priv->_download_behaviour = value; + g_object_notify ((GObject *) self, "download-behaviour"); +} + + +static GObject * tracker_config_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties) { + GObject * obj; + GObjectClass * parent_class; + TrackerConfig * self; + parent_class = G_OBJECT_CLASS (tracker_config_parent_class); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = TRACKER_CONFIG (obj); + { + g_object_set ((TrackerConfigFile*) self, "domain", "tracker-miner-flickr", NULL); + G_OBJECT_CLASS (tracker_config_parent_class)->constructed ((GObject*) TRACKER_CONFIG_FILE (self)); + tracker_config_load (self, TRUE); + } + return obj; +} + + +static void tracker_config_config_key_copy (const TrackerConfigConfigKey* self, TrackerConfigConfigKey* dest) { + dest->type = self->type; + dest->property = g_strdup (self->property); + dest->group = g_strdup (self->group); + dest->key = g_strdup (self->key); +} + + +static void tracker_config_config_key_destroy (TrackerConfigConfigKey* self) { + _g_free0 (self->property); + _g_free0 (self->group); + _g_free0 (self->key); +} + + +static TrackerConfigConfigKey* tracker_config_config_key_dup (const TrackerConfigConfigKey* self) { + TrackerConfigConfigKey* dup; + dup = g_new0 (TrackerConfigConfigKey, 1); + tracker_config_config_key_copy (self, dup); + return dup; +} + + +static void tracker_config_config_key_free (TrackerConfigConfigKey* self) { + tracker_config_config_key_destroy (self); + g_free (self); +} + + +static GType tracker_config_config_key_get_type (void) { + static volatile gsize tracker_config_config_key_type_id__volatile = 0; + if (g_once_init_enter (&tracker_config_config_key_type_id__volatile)) { + GType tracker_config_config_key_type_id; + tracker_config_config_key_type_id = g_boxed_type_register_static ("TrackerConfigConfigKey", (GBoxedCopyFunc) tracker_config_config_key_dup, (GBoxedFreeFunc) tracker_config_config_key_free); + g_once_init_leave (&tracker_config_config_key_type_id__volatile, tracker_config_config_key_type_id); + } + return tracker_config_config_key_type_id__volatile; +} + + +static void tracker_config_class_init (TrackerConfigClass * klass) { + tracker_config_parent_class = g_type_class_peek_parent (klass); + g_type_class_add_private (klass, sizeof (TrackerConfigPrivate)); + TRACKER_CONFIG_FILE_CLASS (klass)->changed = tracker_config_real_changed; + G_OBJECT_CLASS (klass)->get_property = tracker_config_get_property; + G_OBJECT_CLASS (klass)->set_property = tracker_config_set_property; + G_OBJECT_CLASS (klass)->constructor = tracker_config_constructor; + G_OBJECT_CLASS (klass)->finalize = tracker_config_finalize; + g_object_class_install_property (G_OBJECT_CLASS (klass), TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR, g_param_spec_uint ("download-behaviour", "download-behaviour", "download-behaviour", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE)); +} + + +static void tracker_config_instance_init (TrackerConfig * self) { + self->priv = TRACKER_CONFIG_GET_PRIVATE (self); + self->priv->_download_behaviour = TRACKER_CONFIG_DEFAULT_DOWNLOAD_BEHAVIOUR; +} + + +static void tracker_config_finalize (GObject* obj) { + TrackerConfig * self; + self = TRACKER_CONFIG (obj); + G_OBJECT_CLASS (tracker_config_parent_class)->finalize (obj); +} + + +GType tracker_config_get_type (void) { + static volatile gsize tracker_config_type_id__volatile = 0; + if (g_once_init_enter (&tracker_config_type_id__volatile)) { + static const GTypeInfo g_define_type_info = { sizeof (TrackerConfigClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tracker_config_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TrackerConfig), 0, (GInstanceInitFunc) tracker_config_instance_init, NULL }; + GType tracker_config_type_id; + tracker_config_type_id = g_type_register_static (TRACKER_TYPE_CONFIG_FILE, "TrackerConfig", &g_define_type_info, 0); + g_once_init_leave (&tracker_config_type_id__volatile, tracker_config_type_id); + } + return tracker_config_type_id__volatile; +} + + +static void tracker_config_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) { + TrackerConfig * self; + self = TRACKER_CONFIG (object); + switch (property_id) { + case TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR: + g_value_set_uint (value, tracker_config_get_download_behaviour (self)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void tracker_config_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) { + TrackerConfig * self; + self = TRACKER_CONFIG (object); + switch (property_id) { + case TRACKER_CONFIG_DOWNLOAD_BEHAVIOUR: + tracker_config_set_download_behaviour (self, g_value_get_uint (value)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + + + -- 1.7.0.1