~ubuntu-branches/ubuntu/precise/folks/precise

« back to all changes in this revision

Viewing changes to backends/key-file/kf-backend.c

  • Committer: Bazaar Package Importer
  • Author(s): Ken VanDine
  • Date: 2011-06-10 11:28:11 UTC
  • mfrom: (1.2.11 upstream) (4.2.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20110610112811-whyeodbo9mjezxfp
Tags: 0.5.2-1ubuntu1
* Merge with Debian experimental, remaining Ubuntu changes:
  - debian/control:
    + Add Vcs-Bzr link

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* kf-backend.c generated by valac 0.11.7, the Vala compiler
 
1
/* kf-backend.c generated by valac 0.12.0, the Vala compiler
2
2
 * generated from kf-backend.vala, do not modify */
3
3
 
4
4
/*
23
23
 
24
24
#include <glib.h>
25
25
#include <glib-object.h>
26
 
#include <folks.h>
 
26
#include <folks/folks.h>
 
27
#include <gee.h>
27
28
#include <stdlib.h>
28
29
#include <string.h>
29
30
#include <gio/gio.h>
49
50
 
50
51
typedef struct _FolksBackendsKfPersonaStore FolksBackendsKfPersonaStore;
51
52
typedef struct _FolksBackendsKfPersonaStoreClass FolksBackendsKfPersonaStoreClass;
52
 
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
53
53
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
54
54
#define _g_free0(var) (var = (g_free (var), NULL))
55
55
typedef struct _FolksBackendsKfBackendPrepareData FolksBackendsKfBackendPrepareData;
67
67
struct _FolksBackendsKfBackendPrivate {
68
68
        gboolean _is_prepared;
69
69
        GStaticRecMutex __lock__is_prepared;
70
 
        GHashTable* _persona_stores;
 
70
        GeeHashMap* _persona_stores;
 
71
        GeeMap* _persona_stores_ro;
71
72
};
72
73
 
73
74
struct _FolksBackendsKfBackendPrepareData {
89
90
        FolksBackendsKfPersonaStore* _tmp8_;
90
91
        FolksBackendsKfPersonaStore* store;
91
92
        const gchar* _tmp9_;
92
 
        gchar* _tmp10_;
93
 
        FolksBackendsKfPersonaStore* _tmp11_;
94
93
        GError * _inner_error_;
95
94
};
96
95
 
100
99
        GAsyncResult* _res_;
101
100
        GSimpleAsyncResult* _async_result;
102
101
        FolksBackendsKfBackend* self;
 
102
        GeeCollection* _tmp0_;
 
103
        GeeCollection* _tmp1_;
 
104
        GeeIterator* _tmp2_;
 
105
        GeeIterator* _tmp3_;
 
106
        GeeIterator* _persona_store_it;
 
107
        gboolean _tmp4_;
 
108
        gpointer _tmp5_;
 
109
        FolksBackendsKfPersonaStore* persona_store;
103
110
};
104
111
 
105
112
 
116
123
};
117
124
FolksBackendsKfBackend* folks_backends_kf_backend_new (void);
118
125
FolksBackendsKfBackend* folks_backends_kf_backend_construct (GType object_type);
119
 
static void _g_free0_ (gpointer var);
120
 
static void _g_object_unref0_ (gpointer var);
121
126
static void folks_backends_kf_backend_real_prepare_data_free (gpointer _data);
122
127
static void folks_backends_kf_backend_real_prepare (FolksBackend* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
123
128
static gboolean folks_backends_kf_backend_real_prepare_co (FolksBackendsKfBackendPrepareData* data);
128
133
static void folks_backends_kf_backend_real_unprepare_data_free (gpointer _data);
129
134
static void folks_backends_kf_backend_real_unprepare (FolksBackend* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
130
135
static gboolean folks_backends_kf_backend_real_unprepare_co (FolksBackendsKfBackendUnprepareData* data);
131
 
static void _lambda3_ (const gchar* k, FolksBackendsKfPersonaStore* v, FolksBackendsKfBackend* self);
132
 
static void __lambda3__gh_func (gconstpointer key, gconstpointer value, gpointer self);
133
136
static void folks_backends_kf_backend_finalize (GObject* obj);
134
137
static void _vala_folks_backends_kf_backend_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
135
138
 
137
140
/**
138
141
   * {@inheritDoc}
139
142
   */
140
 
static void _g_free0_ (gpointer var) {
141
 
        var = (g_free (var), NULL);
142
 
}
143
 
 
144
 
 
145
 
static void _g_object_unref0_ (gpointer var) {
146
 
        (var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
147
 
}
148
 
 
149
 
 
150
143
FolksBackendsKfBackend* folks_backends_kf_backend_construct (GType object_type) {
151
144
        FolksBackendsKfBackend * self = NULL;
152
 
        GHashTable* _tmp0_ = NULL;
 
145
        GeeHashMap* _tmp0_ = NULL;
 
146
        GeeMap* _tmp1_ = NULL;
153
147
        self = (FolksBackendsKfBackend*) folks_backend_construct (object_type);
154
 
        _tmp0_ = g_hash_table_new_full (g_str_hash, g_str_equal, _g_free0_, _g_object_unref0_);
155
 
        _g_hash_table_unref0 (self->priv->_persona_stores);
 
148
        _tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, FOLKS_BACKENDS_KF_TYPE_PERSONA_STORE, (GBoxedCopyFunc) g_object_ref, g_object_unref, NULL, NULL, NULL);
 
149
        _g_object_unref0 (self->priv->_persona_stores);
156
150
        self->priv->_persona_stores = _tmp0_;
 
151
        _tmp1_ = gee_abstract_map_get_read_only_view ((GeeAbstractMap*) self->priv->_persona_stores);
 
152
        _g_object_unref0 (self->priv->_persona_stores_ro);
 
153
        self->priv->_persona_stores_ro = _tmp1_;
157
154
        return self;
158
155
}
159
156
 
251
248
                        data->store = data->_tmp8_;
252
249
                        data->_tmp9_ = NULL;
253
250
                        data->_tmp9_ = folks_persona_store_get_id ((FolksPersonaStore*) data->store);
254
 
                        data->_tmp10_ = g_strdup (data->_tmp9_);
255
 
                        data->_tmp11_ = _g_object_ref0 (data->store);
256
 
                        g_hash_table_insert (data->self->priv->_persona_stores, data->_tmp10_, data->_tmp11_);
 
251
                        gee_abstract_map_set ((GeeAbstractMap*) data->self->priv->_persona_stores, data->_tmp9_, data->store);
257
252
                        g_signal_connect_object ((FolksPersonaStore*) data->store, "removed", (GCallback) __folks_backends_kf_backend_store_removed_cb_folks_persona_store_removed, data->self, 0);
258
253
                        g_object_notify ((GObject*) data->self, "persona-stores");
259
254
                        g_signal_emit_by_name ((FolksBackend*) data->self, "persona-store-added", (FolksPersonaStore*) data->store);
318
313
/**
319
314
   * {@inheritDoc}
320
315
   */
321
 
static void _lambda3_ (const gchar* k, FolksBackendsKfPersonaStore* v, FolksBackendsKfBackend* self) {
322
 
        g_return_if_fail (k != NULL);
323
 
        g_return_if_fail (v != NULL);
324
 
        g_signal_emit_by_name ((FolksBackend*) self, "persona-store-removed", (FolksPersonaStore*) FOLKS_BACKENDS_KF_PERSONA_STORE (v));
325
 
}
326
 
 
327
 
 
328
 
static void __lambda3__gh_func (gconstpointer key, gconstpointer value, gpointer self) {
329
 
        _lambda3_ (key, value, self);
330
 
}
331
 
 
332
 
 
333
316
static gboolean folks_backends_kf_backend_real_unprepare_co (FolksBackendsKfBackendUnprepareData* data) {
334
317
        switch (data->_state_) {
335
318
                case 0:
338
321
                g_assert_not_reached ();
339
322
        }
340
323
        _state_0:
341
 
        g_hash_table_foreach (data->self->priv->_persona_stores, __lambda3__gh_func, data->self);
342
 
        g_hash_table_remove_all (data->self->priv->_persona_stores);
 
324
        {
 
325
                data->_tmp0_ = NULL;
 
326
                data->_tmp0_ = gee_map_get_values ((GeeMap*) data->self->priv->_persona_stores);
 
327
                data->_tmp1_ = data->_tmp0_;
 
328
                data->_tmp2_ = NULL;
 
329
                data->_tmp2_ = gee_iterable_iterator ((GeeIterable*) data->_tmp1_);
 
330
                data->_tmp3_ = data->_tmp2_;
 
331
                _g_object_unref0 (data->_tmp1_);
 
332
                data->_persona_store_it = data->_tmp3_;
 
333
                while (TRUE) {
 
334
                        data->_tmp4_ = gee_iterator_next (data->_persona_store_it);
 
335
                        if (!data->_tmp4_) {
 
336
                                break;
 
337
                        }
 
338
                        data->_tmp5_ = NULL;
 
339
                        data->_tmp5_ = gee_iterator_get (data->_persona_store_it);
 
340
                        data->persona_store = (FolksBackendsKfPersonaStore*) data->_tmp5_;
 
341
                        g_signal_emit_by_name ((FolksBackend*) data->self, "persona-store-removed", (FolksPersonaStore*) data->persona_store);
 
342
                        _g_object_unref0 (data->persona_store);
 
343
                }
 
344
                _g_object_unref0 (data->_persona_store_it);
 
345
        }
 
346
        gee_abstract_map_clear ((GeeAbstractMap*) data->self->priv->_persona_stores);
343
347
        g_object_notify ((GObject*) data->self, "persona-stores");
344
348
        data->self->priv->_is_prepared = FALSE;
345
349
        g_object_notify ((GObject*) data->self, "is-prepared");
354
358
 
355
359
 
356
360
static void _folks_backends_kf_backend_store_removed_cb (FolksBackendsKfBackend* self, FolksPersonaStore* store) {
357
 
        const gchar* _tmp0_ = NULL;
 
361
        guint _tmp0_;
 
362
        const gchar* _tmp1_ = NULL;
358
363
        g_return_if_fail (self != NULL);
359
364
        g_return_if_fail (store != NULL);
 
365
        g_signal_parse_name ("removed", FOLKS_TYPE_PERSONA_STORE, &_tmp0_, NULL, FALSE);
 
366
        g_signal_handlers_disconnect_matched (store, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp0_, 0, NULL, (GCallback) __folks_backends_kf_backend_store_removed_cb_folks_persona_store_removed, self);
360
367
        g_signal_emit_by_name ((FolksBackend*) self, "persona-store-removed", store);
361
 
        _tmp0_ = folks_persona_store_get_id (store);
362
 
        g_hash_table_remove (self->priv->_persona_stores, _tmp0_);
 
368
        _tmp1_ = folks_persona_store_get_id (store);
 
369
        gee_abstract_map_unset ((GeeAbstractMap*) self->priv->_persona_stores, _tmp1_, NULL);
363
370
        g_object_notify ((GObject*) self, "persona-stores");
364
371
}
365
372
 
382
389
}
383
390
 
384
391
 
385
 
static GHashTable* folks_backends_kf_backend_real_get_persona_stores (FolksBackend* base) {
386
 
        GHashTable* result;
 
392
static GeeMap* folks_backends_kf_backend_real_get_persona_stores (FolksBackend* base) {
 
393
        GeeMap* result;
387
394
        FolksBackendsKfBackend* self;
388
395
        self = (FolksBackendsKfBackend*) base;
389
 
        result = self->priv->_persona_stores;
 
396
        result = self->priv->_persona_stores_ro;
390
397
        return result;
391
398
}
392
399
 
433
440
        FolksBackendsKfBackend * self;
434
441
        self = FOLKS_BACKENDS_KF_BACKEND (obj);
435
442
        g_static_rec_mutex_free (&self->priv->__lock__is_prepared);
436
 
        _g_hash_table_unref0 (self->priv->_persona_stores);
 
443
        _g_object_unref0 (self->priv->_persona_stores);
 
444
        _g_object_unref0 (self->priv->_persona_stores_ro);
437
445
        G_OBJECT_CLASS (folks_backends_kf_backend_parent_class)->finalize (obj);
438
446
}
439
447
 
468
476
                g_value_set_string (value, folks_backend_get_name ((FolksBackend*) self));
469
477
                break;
470
478
                case FOLKS_BACKENDS_KF_BACKEND_PERSONA_STORES:
471
 
                g_value_set_boxed (value, folks_backend_get_persona_stores ((FolksBackend*) self));
 
479
                g_value_set_object (value, folks_backend_get_persona_stores ((FolksBackend*) self));
472
480
                break;
473
481
                default:
474
482
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);