1
/* inspect.c generated by valac 0.11.5.3-fe751, the Vala compiler
2
* generated from inspect.vala, do not modify */
5
* Copyright (C) 2010 Collabora Ltd.
7
* This library is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU Lesser General Public License as published by
9
* the Free Software Foundation, either version 2.1 of the License, or
10
* (at your option) any later version.
12
* This library is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU Lesser General Public License for more details.
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with this library. If not, see <http://www.gnu.org/licenses/>.
21
* Philip Withnall <philip.withnall@collabora.co.uk>
25
#include <glib-object.h>
32
#include <readline/readline.h>
33
#include <readline/history.h>
34
#include <gobject/gvaluecollector.h>
37
#define FOLKS_INSPECT_TYPE_CLIENT (folks_inspect_client_get_type ())
38
#define FOLKS_INSPECT_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_TYPE_CLIENT, FolksInspectClient))
39
#define FOLKS_INSPECT_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_TYPE_CLIENT, FolksInspectClientClass))
40
#define FOLKS_INSPECT_IS_CLIENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_TYPE_CLIENT))
41
#define FOLKS_INSPECT_IS_CLIENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_TYPE_CLIENT))
42
#define FOLKS_INSPECT_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_TYPE_CLIENT, FolksInspectClientClass))
44
typedef struct _FolksInspectClient FolksInspectClient;
45
typedef struct _FolksInspectClientClass FolksInspectClientClass;
46
typedef struct _FolksInspectClientPrivate FolksInspectClientPrivate;
48
#define FOLKS_INSPECT_TYPE_COMMAND (folks_inspect_command_get_type ())
49
#define FOLKS_INSPECT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_TYPE_COMMAND, FolksInspectCommand))
50
#define FOLKS_INSPECT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_TYPE_COMMAND, FolksInspectCommandClass))
51
#define FOLKS_INSPECT_IS_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_TYPE_COMMAND))
52
#define FOLKS_INSPECT_IS_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_TYPE_COMMAND))
53
#define FOLKS_INSPECT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_TYPE_COMMAND, FolksInspectCommandClass))
55
typedef struct _FolksInspectCommand FolksInspectCommand;
56
typedef struct _FolksInspectCommandClass FolksInspectCommandClass;
58
#define FOLKS_INSPECT_TYPE_SIGNAL_MANAGER (folks_inspect_signal_manager_get_type ())
59
#define FOLKS_INSPECT_SIGNAL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_TYPE_SIGNAL_MANAGER, FolksInspectSignalManager))
60
#define FOLKS_INSPECT_SIGNAL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_TYPE_SIGNAL_MANAGER, FolksInspectSignalManagerClass))
61
#define FOLKS_INSPECT_IS_SIGNAL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_TYPE_SIGNAL_MANAGER))
62
#define FOLKS_INSPECT_IS_SIGNAL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_TYPE_SIGNAL_MANAGER))
63
#define FOLKS_INSPECT_SIGNAL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_TYPE_SIGNAL_MANAGER, FolksInspectSignalManagerClass))
65
typedef struct _FolksInspectSignalManager FolksInspectSignalManager;
66
typedef struct _FolksInspectSignalManagerClass FolksInspectSignalManagerClass;
67
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
68
#define _g_main_loop_unref0(var) ((var == NULL) ? NULL : (var = (g_main_loop_unref (var), NULL)))
69
typedef struct _Block6Data Block6Data;
70
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
72
#define FOLKS_INSPECT_COMMANDS_TYPE_QUIT (folks_inspect_commands_quit_get_type ())
73
#define FOLKS_INSPECT_COMMANDS_QUIT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_COMMANDS_TYPE_QUIT, FolksInspectCommandsQuit))
74
#define FOLKS_INSPECT_COMMANDS_QUIT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_COMMANDS_TYPE_QUIT, FolksInspectCommandsQuitClass))
75
#define FOLKS_INSPECT_COMMANDS_IS_QUIT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_COMMANDS_TYPE_QUIT))
76
#define FOLKS_INSPECT_COMMANDS_IS_QUIT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_COMMANDS_TYPE_QUIT))
77
#define FOLKS_INSPECT_COMMANDS_QUIT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_COMMANDS_TYPE_QUIT, FolksInspectCommandsQuitClass))
79
typedef struct _FolksInspectCommandsQuit FolksInspectCommandsQuit;
80
typedef struct _FolksInspectCommandsQuitClass FolksInspectCommandsQuitClass;
81
#define _folks_inspect_command_unref0(var) ((var == NULL) ? NULL : (var = (folks_inspect_command_unref (var), NULL)))
83
#define FOLKS_INSPECT_COMMANDS_TYPE_HELP (folks_inspect_commands_help_get_type ())
84
#define FOLKS_INSPECT_COMMANDS_HELP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_COMMANDS_TYPE_HELP, FolksInspectCommandsHelp))
85
#define FOLKS_INSPECT_COMMANDS_HELP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_COMMANDS_TYPE_HELP, FolksInspectCommandsHelpClass))
86
#define FOLKS_INSPECT_COMMANDS_IS_HELP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_COMMANDS_TYPE_HELP))
87
#define FOLKS_INSPECT_COMMANDS_IS_HELP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_COMMANDS_TYPE_HELP))
88
#define FOLKS_INSPECT_COMMANDS_HELP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_COMMANDS_TYPE_HELP, FolksInspectCommandsHelpClass))
90
typedef struct _FolksInspectCommandsHelp FolksInspectCommandsHelp;
91
typedef struct _FolksInspectCommandsHelpClass FolksInspectCommandsHelpClass;
93
#define FOLKS_INSPECT_COMMANDS_TYPE_INDIVIDUALS (folks_inspect_commands_individuals_get_type ())
94
#define FOLKS_INSPECT_COMMANDS_INDIVIDUALS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_COMMANDS_TYPE_INDIVIDUALS, FolksInspectCommandsIndividuals))
95
#define FOLKS_INSPECT_COMMANDS_INDIVIDUALS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_COMMANDS_TYPE_INDIVIDUALS, FolksInspectCommandsIndividualsClass))
96
#define FOLKS_INSPECT_COMMANDS_IS_INDIVIDUALS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_COMMANDS_TYPE_INDIVIDUALS))
97
#define FOLKS_INSPECT_COMMANDS_IS_INDIVIDUALS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_COMMANDS_TYPE_INDIVIDUALS))
98
#define FOLKS_INSPECT_COMMANDS_INDIVIDUALS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_COMMANDS_TYPE_INDIVIDUALS, FolksInspectCommandsIndividualsClass))
100
typedef struct _FolksInspectCommandsIndividuals FolksInspectCommandsIndividuals;
101
typedef struct _FolksInspectCommandsIndividualsClass FolksInspectCommandsIndividualsClass;
103
#define FOLKS_INSPECT_COMMANDS_TYPE_PERSONAS (folks_inspect_commands_personas_get_type ())
104
#define FOLKS_INSPECT_COMMANDS_PERSONAS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_COMMANDS_TYPE_PERSONAS, FolksInspectCommandsPersonas))
105
#define FOLKS_INSPECT_COMMANDS_PERSONAS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_COMMANDS_TYPE_PERSONAS, FolksInspectCommandsPersonasClass))
106
#define FOLKS_INSPECT_COMMANDS_IS_PERSONAS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_COMMANDS_TYPE_PERSONAS))
107
#define FOLKS_INSPECT_COMMANDS_IS_PERSONAS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_COMMANDS_TYPE_PERSONAS))
108
#define FOLKS_INSPECT_COMMANDS_PERSONAS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_COMMANDS_TYPE_PERSONAS, FolksInspectCommandsPersonasClass))
110
typedef struct _FolksInspectCommandsPersonas FolksInspectCommandsPersonas;
111
typedef struct _FolksInspectCommandsPersonasClass FolksInspectCommandsPersonasClass;
113
#define FOLKS_INSPECT_COMMANDS_TYPE_BACKENDS (folks_inspect_commands_backends_get_type ())
114
#define FOLKS_INSPECT_COMMANDS_BACKENDS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_COMMANDS_TYPE_BACKENDS, FolksInspectCommandsBackends))
115
#define FOLKS_INSPECT_COMMANDS_BACKENDS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_COMMANDS_TYPE_BACKENDS, FolksInspectCommandsBackendsClass))
116
#define FOLKS_INSPECT_COMMANDS_IS_BACKENDS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_COMMANDS_TYPE_BACKENDS))
117
#define FOLKS_INSPECT_COMMANDS_IS_BACKENDS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_COMMANDS_TYPE_BACKENDS))
118
#define FOLKS_INSPECT_COMMANDS_BACKENDS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_COMMANDS_TYPE_BACKENDS, FolksInspectCommandsBackendsClass))
120
typedef struct _FolksInspectCommandsBackends FolksInspectCommandsBackends;
121
typedef struct _FolksInspectCommandsBackendsClass FolksInspectCommandsBackendsClass;
123
#define FOLKS_INSPECT_COMMANDS_TYPE_PERSONA_STORES (folks_inspect_commands_persona_stores_get_type ())
124
#define FOLKS_INSPECT_COMMANDS_PERSONA_STORES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_COMMANDS_TYPE_PERSONA_STORES, FolksInspectCommandsPersonaStores))
125
#define FOLKS_INSPECT_COMMANDS_PERSONA_STORES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_COMMANDS_TYPE_PERSONA_STORES, FolksInspectCommandsPersonaStoresClass))
126
#define FOLKS_INSPECT_COMMANDS_IS_PERSONA_STORES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_COMMANDS_TYPE_PERSONA_STORES))
127
#define FOLKS_INSPECT_COMMANDS_IS_PERSONA_STORES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_COMMANDS_TYPE_PERSONA_STORES))
128
#define FOLKS_INSPECT_COMMANDS_PERSONA_STORES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_COMMANDS_TYPE_PERSONA_STORES, FolksInspectCommandsPersonaStoresClass))
130
typedef struct _FolksInspectCommandsPersonaStores FolksInspectCommandsPersonaStores;
131
typedef struct _FolksInspectCommandsPersonaStoresClass FolksInspectCommandsPersonaStoresClass;
133
#define FOLKS_INSPECT_COMMANDS_TYPE_SIGNALS (folks_inspect_commands_signals_get_type ())
134
#define FOLKS_INSPECT_COMMANDS_SIGNALS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FOLKS_INSPECT_COMMANDS_TYPE_SIGNALS, FolksInspectCommandsSignals))
135
#define FOLKS_INSPECT_COMMANDS_SIGNALS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FOLKS_INSPECT_COMMANDS_TYPE_SIGNALS, FolksInspectCommandsSignalsClass))
136
#define FOLKS_INSPECT_COMMANDS_IS_SIGNALS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FOLKS_INSPECT_COMMANDS_TYPE_SIGNALS))
137
#define FOLKS_INSPECT_COMMANDS_IS_SIGNALS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FOLKS_INSPECT_COMMANDS_TYPE_SIGNALS))
138
#define FOLKS_INSPECT_COMMANDS_SIGNALS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FOLKS_INSPECT_COMMANDS_TYPE_SIGNALS, FolksInspectCommandsSignalsClass))
140
typedef struct _FolksInspectCommandsSignals FolksInspectCommandsSignals;
141
typedef struct _FolksInspectCommandsSignalsClass FolksInspectCommandsSignalsClass;
142
#define _g_free0(var) (var = (g_free (var), NULL))
143
typedef struct _FolksInspectCommandPrivate FolksInspectCommandPrivate;
144
typedef struct _FolksInspectParamSpecCommand FolksInspectParamSpecCommand;
146
struct _FolksInspectClient {
147
GObject parent_instance;
148
FolksInspectClientPrivate * priv;
149
GeeHashMap* commands;
152
struct _FolksInspectClientClass {
153
GObjectClass parent_class;
156
struct _FolksInspectClientPrivate {
157
GMainLoop* main_loop;
158
GThread* folks_thread;
159
FolksIndividualAggregator* _aggregator;
160
FolksBackendStore* _backend_store;
161
FolksInspectSignalManager* _signal_manager;
166
FolksInspectClient * self;
167
FolksBackend* backend;
170
struct _FolksInspectCommand {
171
GTypeInstance parent_instance;
172
volatile int ref_count;
173
FolksInspectCommandPrivate * priv;
174
FolksInspectClient* client;
177
struct _FolksInspectCommandClass {
178
GTypeClass parent_class;
179
void (*finalize) (FolksInspectCommand *self);
180
void (*run) (FolksInspectCommand* self, const gchar* command_string);
181
gchar** (*complete_subcommand) (FolksInspectCommand* self, const gchar* subcommand);
182
const gchar* (*get_name) (FolksInspectCommand* self);
183
const gchar* (*get_description) (FolksInspectCommand* self);
184
const gchar* (*get_help) (FolksInspectCommand* self);
187
struct _FolksInspectParamSpecCommand {
188
GParamSpec parent_instance;
192
extern FolksInspectClient* main_client;
193
FolksInspectClient* main_client = NULL;
194
static gpointer folks_inspect_client_parent_class = NULL;
195
static gpointer folks_inspect_command_parent_class = NULL;
197
GType folks_inspect_client_get_type (void) G_GNUC_CONST;
198
gpointer folks_inspect_command_ref (gpointer instance);
199
void folks_inspect_command_unref (gpointer instance);
200
GParamSpec* folks_inspect_param_spec_command (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
201
void folks_inspect_value_set_command (GValue* value, gpointer v_object);
202
void folks_inspect_value_take_command (GValue* value, gpointer v_object);
203
gpointer folks_inspect_value_get_command (const GValue* value);
204
GType folks_inspect_command_get_type (void) G_GNUC_CONST;
205
GType folks_inspect_signal_manager_get_type (void) G_GNUC_CONST;
206
#define FOLKS_INSPECT_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), FOLKS_INSPECT_TYPE_CLIENT, FolksInspectClientPrivate))
208
FOLKS_INSPECT_CLIENT_DUMMY_PROPERTY,
209
FOLKS_INSPECT_CLIENT_AGGREGATOR,
210
FOLKS_INSPECT_CLIENT_BACKEND_STORE,
211
FOLKS_INSPECT_CLIENT_SIGNAL_MANAGER
213
gint folks_inspect_client_main (gchar** args, int args_length1);
214
FolksInspectClient* folks_inspect_client_new (void);
215
FolksInspectClient* folks_inspect_client_construct (GType object_type);
216
void folks_inspect_client_run_interactive (FolksInspectClient* self);
217
static void* folks_inspect_client_folks_thread_main (FolksInspectClient* self);
218
FolksInspectSignalManager* folks_inspect_signal_manager_new (void);
219
FolksInspectSignalManager* folks_inspect_signal_manager_construct (GType object_type);
220
static void folks_inspect_client_set_signal_manager (FolksInspectClient* self, FolksInspectSignalManager* value);
221
static void folks_inspect_client_set_aggregator (FolksInspectClient* self, FolksIndividualAggregator* value);
222
FolksIndividualAggregator* folks_inspect_client_get_aggregator (FolksInspectClient* self);
223
static void folks_inspect_client_set_backend_store (FolksInspectClient* self, FolksBackendStore* value);
224
FolksBackendStore* folks_inspect_client_get_backend_store (FolksInspectClient* self);
225
static void _lambda4_ (FolksBackendStore* bs, FolksBackend* b, FolksInspectClient* self);
226
static Block6Data* block6_data_ref (Block6Data* _data6_);
227
static void block6_data_unref (Block6Data* _data6_);
228
static void _lambda5_ (GObject* obj, GAsyncResult* _result_, Block6Data* _data6_);
229
static void __lambda5__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);
230
static void __lambda4__folks_backend_store_backend_available (FolksBackendStore* _sender, FolksBackend* backend, gpointer self);
231
void folks_inspect_utils_init (void);
232
FolksInspectCommandsQuit* folks_inspect_commands_quit_new (FolksInspectClient* client);
233
FolksInspectCommandsQuit* folks_inspect_commands_quit_construct (GType object_type, FolksInspectClient* client);
234
GType folks_inspect_commands_quit_get_type (void) G_GNUC_CONST;
235
FolksInspectCommandsHelp* folks_inspect_commands_help_new (FolksInspectClient* client);
236
FolksInspectCommandsHelp* folks_inspect_commands_help_construct (GType object_type, FolksInspectClient* client);
237
GType folks_inspect_commands_help_get_type (void) G_GNUC_CONST;
238
FolksInspectCommandsIndividuals* folks_inspect_commands_individuals_new (FolksInspectClient* client);
239
FolksInspectCommandsIndividuals* folks_inspect_commands_individuals_construct (GType object_type, FolksInspectClient* client);
240
GType folks_inspect_commands_individuals_get_type (void) G_GNUC_CONST;
241
FolksInspectCommandsPersonas* folks_inspect_commands_personas_new (FolksInspectClient* client);
242
FolksInspectCommandsPersonas* folks_inspect_commands_personas_construct (GType object_type, FolksInspectClient* client);
243
GType folks_inspect_commands_personas_get_type (void) G_GNUC_CONST;
244
FolksInspectCommandsBackends* folks_inspect_commands_backends_new (FolksInspectClient* client);
245
FolksInspectCommandsBackends* folks_inspect_commands_backends_construct (GType object_type, FolksInspectClient* client);
246
GType folks_inspect_commands_backends_get_type (void) G_GNUC_CONST;
247
FolksInspectCommandsPersonaStores* folks_inspect_commands_persona_stores_new (FolksInspectClient* client);
248
FolksInspectCommandsPersonaStores* folks_inspect_commands_persona_stores_construct (GType object_type, FolksInspectClient* client);
249
GType folks_inspect_commands_persona_stores_get_type (void) G_GNUC_CONST;
250
FolksInspectCommandsSignals* folks_inspect_commands_signals_new (FolksInspectClient* client);
251
FolksInspectCommandsSignals* folks_inspect_commands_signals_construct (GType object_type, FolksInspectClient* client);
252
GType folks_inspect_commands_signals_get_type (void) G_GNUC_CONST;
253
static gpointer _folks_inspect_client_folks_thread_main_gthread_func (gpointer self);
254
static gchar** folks_inspect_client_completion_cb (const gchar* word, gint start, gint end);
255
static gchar** _folks_inspect_client_completion_cb_rl_completion_func_t (const gchar* str, gint a, gint b);
256
static FolksInspectCommand* folks_inspect_client_parse_command_line (const gchar* command_line, gchar** command_name, gchar** subcommand);
257
void folks_inspect_command_run (FolksInspectCommand* self, const gchar* command_string);
258
gchar* folks_inspect_utils_command_name_completion_cb (const gchar* word, gint state);
259
static gchar* _folks_inspect_utils_command_name_completion_cb_rl_compentry_func_t (const gchar* str, gint a);
260
static gchar** _vala_array_dup7 (gchar** self, int length);
261
gchar** folks_inspect_command_complete_subcommand (FolksInspectCommand* self, const gchar* subcommand);
262
FolksInspectSignalManager* folks_inspect_client_get_signal_manager (FolksInspectClient* self);
263
static void folks_inspect_client_finalize (GObject* obj);
264
static void _vala_folks_inspect_client_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
265
static void _vala_folks_inspect_client_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
267
FOLKS_INSPECT_COMMAND_DUMMY_PROPERTY
269
FolksInspectCommand* folks_inspect_command_construct (GType object_type, FolksInspectClient* client);
270
static void folks_inspect_command_real_run (FolksInspectCommand* self, const gchar* command_string);
271
static gchar** folks_inspect_command_real_complete_subcommand (FolksInspectCommand* self, const gchar* subcommand);
272
const gchar* folks_inspect_command_get_name (FolksInspectCommand* self);
273
const gchar* folks_inspect_command_get_description (FolksInspectCommand* self);
274
const gchar* folks_inspect_command_get_help (FolksInspectCommand* self);
275
static void folks_inspect_command_finalize (FolksInspectCommand* obj);
276
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
277
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
278
static gint _vala_array_length (gpointer array);
281
gint folks_inspect_client_main (gchar** args, int args_length1) {
283
FolksInspectClient* _tmp0_ = NULL;
284
FolksInspectClient* _tmp1_;
285
_tmp0_ = folks_inspect_client_new ();
287
_g_object_unref0 (main_client);
288
main_client = _tmp1_;
289
folks_inspect_client_run_interactive (main_client);
295
int main (int argc, char ** argv) {
297
return folks_inspect_client_main (argv, argc);
301
static Block6Data* block6_data_ref (Block6Data* _data6_) {
302
g_atomic_int_inc (&_data6_->_ref_count_);
307
static void block6_data_unref (Block6Data* _data6_) {
308
if (g_atomic_int_dec_and_test (&_data6_->_ref_count_)) {
309
_g_object_unref0 (_data6_->self);
310
_g_object_unref0 (_data6_->backend);
311
g_slice_free (Block6Data, _data6_);
316
static gpointer _g_object_ref0 (gpointer self) {
317
return self ? g_object_ref (self) : NULL;
321
static void _lambda5_ (GObject* obj, GAsyncResult* _result_, Block6Data* _data6_) {
322
FolksInspectClient * self;
323
GError * _inner_error_ = NULL;
324
self = _data6_->self;
325
g_return_if_fail (_result_ != NULL);
326
folks_backend_prepare_finish (_data6_->backend, _result_, &_inner_error_);
327
if (_inner_error_ != NULL) {
328
goto __catch0_g_error;
334
const gchar* _tmp0_ = NULL;
336
_inner_error_ = NULL;
337
_tmp0_ = folks_backend_get_name (_data6_->backend);
338
g_warning ("inspect.vala:70: Error preparing Backend '%s': %s", _tmp0_, e->message);
342
if (_inner_error_ != NULL) {
343
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);
344
g_clear_error (&_inner_error_);
350
static void __lambda5__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
351
_lambda5_ (source_object, res, self);
352
block6_data_unref (self);
356
static void _lambda4_ (FolksBackendStore* bs, FolksBackend* b, FolksInspectClient* self) {
358
FolksBackend* _tmp0_;
359
g_return_if_fail (bs != NULL);
360
g_return_if_fail (b != NULL);
361
_data6_ = g_slice_new0 (Block6Data);
362
_data6_->_ref_count_ = 1;
363
_data6_->self = g_object_ref (self);
364
_tmp0_ = _g_object_ref0 (FOLKS_BACKEND (b));
365
_data6_->backend = _tmp0_;
366
folks_backend_prepare (_data6_->backend, __lambda5__gasync_ready_callback, block6_data_ref (_data6_));
367
block6_data_unref (_data6_);
372
static void __lambda4__folks_backend_store_backend_available (FolksBackendStore* _sender, FolksBackend* backend, gpointer self) {
373
_lambda4_ (_sender, backend, self);
377
static void* folks_inspect_client_folks_thread_main (FolksInspectClient* self) {
379
GMainLoop* _tmp0_ = NULL;
381
FolksInspectSignalManager* _tmp2_ = NULL;
382
FolksInspectSignalManager* _tmp3_;
383
FolksIndividualAggregator* _tmp4_ = NULL;
384
FolksIndividualAggregator* _tmp5_;
385
FolksBackendStore* _tmp6_ = NULL;
386
FolksBackendStore* _tmp7_;
387
g_return_val_if_fail (self != NULL, NULL);
388
_tmp0_ = g_main_loop_new (NULL, FALSE);
390
_g_main_loop_unref0 (self->priv->main_loop);
391
self->priv->main_loop = _tmp1_;
392
_tmp2_ = folks_inspect_signal_manager_new ();
394
folks_inspect_client_set_signal_manager (self, _tmp3_);
395
_g_object_unref0 (_tmp3_);
396
_tmp4_ = folks_individual_aggregator_new ();
398
folks_inspect_client_set_aggregator (self, _tmp5_);
399
_g_object_unref0 (_tmp5_);
400
folks_individual_aggregator_prepare (self->priv->_aggregator, NULL, NULL);
401
_tmp6_ = folks_backend_store_dup ();
403
folks_inspect_client_set_backend_store (self, _tmp7_);
404
_g_object_unref0 (_tmp7_);
405
g_signal_connect_object (self->priv->_backend_store, "backend-available", (GCallback) __lambda4__folks_backend_store_backend_available, self, 0);
406
folks_backend_store_load_backends (self->priv->_backend_store, NULL, NULL);
407
g_main_loop_run (self->priv->main_loop);
413
static gpointer _folks_inspect_client_folks_thread_main_gthread_func (gpointer self) {
415
result = folks_inspect_client_folks_thread_main (self);
420
FolksInspectClient* folks_inspect_client_construct (GType object_type) {
421
FolksInspectClient * self = NULL;
422
GeeHashMap* _tmp0_ = NULL;
424
FolksInspectCommandsQuit* _tmp2_ = NULL;
425
FolksInspectCommandsQuit* _tmp3_;
426
FolksInspectCommandsHelp* _tmp4_ = NULL;
427
FolksInspectCommandsHelp* _tmp5_;
428
FolksInspectCommandsIndividuals* _tmp6_ = NULL;
429
FolksInspectCommandsIndividuals* _tmp7_;
430
FolksInspectCommandsPersonas* _tmp8_ = NULL;
431
FolksInspectCommandsPersonas* _tmp9_;
432
FolksInspectCommandsBackends* _tmp10_ = NULL;
433
FolksInspectCommandsBackends* _tmp11_;
434
FolksInspectCommandsPersonaStores* _tmp12_ = NULL;
435
FolksInspectCommandsPersonaStores* _tmp13_;
436
FolksInspectCommandsSignals* _tmp14_ = NULL;
437
FolksInspectCommandsSignals* _tmp15_;
438
GThread* _tmp16_ = NULL;
440
GError * _inner_error_ = NULL;
441
self = (FolksInspectClient*) g_object_new (object_type, NULL);
442
folks_inspect_utils_init ();
443
_tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, FOLKS_INSPECT_TYPE_COMMAND, (GBoxedCopyFunc) folks_inspect_command_ref, folks_inspect_command_unref, g_str_hash, g_str_equal, NULL);
445
_g_object_unref0 (self->commands);
446
self->commands = _tmp1_;
447
_tmp2_ = folks_inspect_commands_quit_new (self);
449
gee_abstract_map_set ((GeeAbstractMap*) self->commands, "quit", (FolksInspectCommand*) _tmp3_);
450
_folks_inspect_command_unref0 (_tmp3_);
451
_tmp4_ = folks_inspect_commands_help_new (self);
453
gee_abstract_map_set ((GeeAbstractMap*) self->commands, "help", (FolksInspectCommand*) _tmp5_);
454
_folks_inspect_command_unref0 (_tmp5_);
455
_tmp6_ = folks_inspect_commands_individuals_new (self);
457
gee_abstract_map_set ((GeeAbstractMap*) self->commands, "individuals", (FolksInspectCommand*) _tmp7_);
458
_folks_inspect_command_unref0 (_tmp7_);
459
_tmp8_ = folks_inspect_commands_personas_new (self);
461
gee_abstract_map_set ((GeeAbstractMap*) self->commands, "personas", (FolksInspectCommand*) _tmp9_);
462
_folks_inspect_command_unref0 (_tmp9_);
463
_tmp10_ = folks_inspect_commands_backends_new (self);
465
gee_abstract_map_set ((GeeAbstractMap*) self->commands, "backends", (FolksInspectCommand*) _tmp11_);
466
_folks_inspect_command_unref0 (_tmp11_);
467
_tmp12_ = folks_inspect_commands_persona_stores_new (self);
469
gee_abstract_map_set ((GeeAbstractMap*) self->commands, "persona-stores", (FolksInspectCommand*) _tmp13_);
470
_folks_inspect_command_unref0 (_tmp13_);
471
_tmp14_ = folks_inspect_commands_signals_new (self);
473
gee_abstract_map_set ((GeeAbstractMap*) self->commands, "signals", (FolksInspectCommand*) _tmp15_);
474
_folks_inspect_command_unref0 (_tmp15_);
475
_tmp16_ = g_thread_create (_folks_inspect_client_folks_thread_main_gthread_func, self, TRUE, &_inner_error_);
477
if (_inner_error_ != NULL) {
478
if (_inner_error_->domain == G_THREAD_ERROR) {
479
goto __catch1_g_thread_error;
481
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
482
g_clear_error (&_inner_error_);
485
self->priv->folks_thread = _tmp17_;
487
__catch1_g_thread_error:
491
_inner_error_ = NULL;
492
fprintf (stdout, "Couldn't create aggregator thread: %s", e->message);
497
if (_inner_error_ != NULL) {
498
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);
499
g_clear_error (&_inner_error_);
506
FolksInspectClient* folks_inspect_client_new (void) {
507
return folks_inspect_client_construct (FOLKS_INSPECT_TYPE_CLIENT);
511
static gchar** _folks_inspect_client_completion_cb_rl_completion_func_t (const gchar* str, gint a, gint b) {
513
result = folks_inspect_client_completion_cb (str, a, b);
518
static gchar* __readline (const gchar* prompt) {
519
gchar* result = NULL;
522
gchar* _tmp1_ = NULL;
524
_tmp0_ = readline (prompt);
530
_tmp1_ = g_strdup ((const gchar*) cstr);
538
static gchar* string_strip (const gchar* self) {
539
gchar* result = NULL;
540
gchar* _tmp0_ = NULL;
542
g_return_val_if_fail (self != NULL, NULL);
543
_tmp0_ = g_strdup (self);
545
g_strstrip (_result_);
551
void folks_inspect_client_run_interactive (FolksInspectClient* self) {
552
g_return_if_fail (self != NULL);
553
rl_readline_name = "folks-inspect";
554
rl_attempted_completion_function = _folks_inspect_client_completion_cb_rl_completion_func_t;
556
gchar* _tmp0_ = NULL;
558
gchar* _tmp1_ = NULL;
560
gchar* subcommand = NULL;
561
gchar* command_name = NULL;
562
gchar* _tmp3_ = NULL;
563
gchar* _tmp4_ = NULL;
564
FolksInspectCommand* _tmp5_ = NULL;
565
FolksInspectCommand* command;
566
_tmp0_ = __readline ("> ");
567
command_line = _tmp0_;
568
if (command_line == NULL) {
569
_g_free0 (command_line);
572
_tmp1_ = string_strip (command_line);
574
_g_free0 (command_line);
575
command_line = _tmp2_;
576
if (g_strcmp0 (command_line, "") == 0) {
577
_g_free0 (command_line);
580
_tmp5_ = folks_inspect_client_parse_command_line (command_line, &_tmp3_, &_tmp4_);
581
_g_free0 (command_name);
582
command_name = _tmp3_;
583
_g_free0 (subcommand);
586
if (command != NULL) {
587
folks_inspect_command_run (command, subcommand);
589
fprintf (stdout, "Unrecognised command '%s'.\n", command_name);
591
add_history (command_line);
592
_folks_inspect_command_unref0 (command);
593
_g_free0 (command_name);
594
_g_free0 (subcommand);
595
_g_free0 (command_line);
600
static FolksInspectCommand* folks_inspect_client_parse_command_line (const gchar* command_line, gchar** command_name, gchar** subcommand) {
601
gchar* _command_name = NULL;
602
gchar* _subcommand = NULL;
603
FolksInspectCommand* result = NULL;
605
gchar** _tmp1_ = NULL;
611
gboolean _tmp4_ = FALSE;
612
gpointer _tmp8_ = NULL;
613
g_return_val_if_fail (command_line != NULL, NULL);
614
_tmp1_ = _tmp0_ = g_strsplit (command_line, " ", 2);
616
parts_length1 = _vala_array_length (_tmp0_);
617
_parts_size_ = _vala_array_length (_tmp0_);
618
if (parts_length1 < 1) {
620
parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
622
*command_name = _command_name;
624
_g_free0 (_command_name);
627
*subcommand = _subcommand;
629
_g_free0 (_subcommand);
633
_tmp2_ = g_strdup (parts[0]);
635
_g_free0 (_command_name);
636
_command_name = _tmp3_;
637
if (parts_length1 == 2) {
638
_tmp4_ = g_strcmp0 (parts[1], "") != 0;
645
_tmp5_ = g_strdup (parts[1]);
647
_g_free0 (_subcommand);
648
_subcommand = _tmp6_;
652
_g_free0 (_subcommand);
653
_subcommand = _tmp7_;
655
_tmp8_ = gee_abstract_map_get ((GeeAbstractMap*) main_client->commands, parts[0]);
656
result = (FolksInspectCommand*) _tmp8_;
657
parts = (_vala_array_free (parts, parts_length1, (GDestroyNotify) g_free), NULL);
659
*command_name = _command_name;
661
_g_free0 (_command_name);
664
*subcommand = _subcommand;
666
_g_free0 (_subcommand);
672
static gchar* _folks_inspect_utils_command_name_completion_cb_rl_compentry_func_t (const gchar* str, gint a) {
674
result = folks_inspect_utils_command_name_completion_cb (str, a);
679
static gchar** _vala_array_dup7 (gchar** self, int length) {
682
result = g_new0 (gchar*, length + 1);
683
for (i = 0; i < length; i++) {
684
result[i] = g_strdup (self[i]);
690
static gchar** folks_inspect_client_completion_cb (const gchar* word, gint start, gint end) {
691
gchar** result = NULL;
692
gchar* command_name = NULL;
693
gchar* subcommand = NULL;
694
gchar* _tmp4_ = NULL;
695
gchar* _tmp5_ = NULL;
696
FolksInspectCommand* _tmp6_ = NULL;
697
FolksInspectCommand* command;
698
g_return_val_if_fail (word != NULL, NULL);
701
gchar** _tmp1_ = NULL;
704
_tmp1_ = _tmp0_ = rl_completion_matches (word, _folks_inspect_utils_command_name_completion_cb_rl_compentry_func_t);
705
_tmp2_ = (_tmp3_ = _tmp1_, (_tmp3_ == NULL) ? ((gpointer) _tmp3_) : _vala_array_dup7 (_tmp3_, _vala_array_length (_tmp0_)));
709
_tmp6_ = folks_inspect_client_parse_command_line (rl_line_buffer, &_tmp4_, &_tmp5_);
710
_g_free0 (command_name);
711
command_name = _tmp4_;
712
_g_free0 (subcommand);
715
if (command != NULL) {
717
gchar** _tmp10_ = NULL;
718
if (subcommand == NULL) {
721
_tmp7_ = g_strdup ("");
723
_g_free0 (subcommand);
726
_tmp10_ = _tmp9_ = folks_inspect_command_complete_subcommand (command, subcommand);
728
_folks_inspect_command_unref0 (command);
729
_g_free0 (subcommand);
730
_g_free0 (command_name);
734
_folks_inspect_command_unref0 (command);
735
_g_free0 (subcommand);
736
_g_free0 (command_name);
741
FolksIndividualAggregator* folks_inspect_client_get_aggregator (FolksInspectClient* self) {
742
FolksIndividualAggregator* result;
743
g_return_val_if_fail (self != NULL, NULL);
744
result = self->priv->_aggregator;
749
static void folks_inspect_client_set_aggregator (FolksInspectClient* self, FolksIndividualAggregator* value) {
750
FolksIndividualAggregator* _tmp0_;
751
FolksIndividualAggregator* _tmp1_;
752
g_return_if_fail (self != NULL);
753
_tmp0_ = _g_object_ref0 (value);
755
_g_object_unref0 (self->priv->_aggregator);
756
self->priv->_aggregator = _tmp1_;
757
g_object_notify ((GObject *) self, "aggregator");
761
FolksBackendStore* folks_inspect_client_get_backend_store (FolksInspectClient* self) {
762
FolksBackendStore* result;
763
g_return_val_if_fail (self != NULL, NULL);
764
result = self->priv->_backend_store;
769
static void folks_inspect_client_set_backend_store (FolksInspectClient* self, FolksBackendStore* value) {
770
FolksBackendStore* _tmp0_;
771
FolksBackendStore* _tmp1_;
772
g_return_if_fail (self != NULL);
773
_tmp0_ = _g_object_ref0 (value);
775
_g_object_unref0 (self->priv->_backend_store);
776
self->priv->_backend_store = _tmp1_;
777
g_object_notify ((GObject *) self, "backend-store");
781
FolksInspectSignalManager* folks_inspect_client_get_signal_manager (FolksInspectClient* self) {
782
FolksInspectSignalManager* result;
783
g_return_val_if_fail (self != NULL, NULL);
784
result = self->priv->_signal_manager;
789
static void folks_inspect_client_set_signal_manager (FolksInspectClient* self, FolksInspectSignalManager* value) {
790
FolksInspectSignalManager* _tmp0_;
791
FolksInspectSignalManager* _tmp1_;
792
g_return_if_fail (self != NULL);
793
_tmp0_ = _g_object_ref0 (value);
795
_g_object_unref0 (self->priv->_signal_manager);
796
self->priv->_signal_manager = _tmp1_;
797
g_object_notify ((GObject *) self, "signal-manager");
801
static void folks_inspect_client_class_init (FolksInspectClientClass * klass) {
802
folks_inspect_client_parent_class = g_type_class_peek_parent (klass);
803
g_type_class_add_private (klass, sizeof (FolksInspectClientPrivate));
804
G_OBJECT_CLASS (klass)->get_property = _vala_folks_inspect_client_get_property;
805
G_OBJECT_CLASS (klass)->set_property = _vala_folks_inspect_client_set_property;
806
G_OBJECT_CLASS (klass)->finalize = folks_inspect_client_finalize;
807
g_object_class_install_property (G_OBJECT_CLASS (klass), FOLKS_INSPECT_CLIENT_AGGREGATOR, g_param_spec_object ("aggregator", "aggregator", "aggregator", FOLKS_TYPE_INDIVIDUAL_AGGREGATOR, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
808
g_object_class_install_property (G_OBJECT_CLASS (klass), FOLKS_INSPECT_CLIENT_BACKEND_STORE, g_param_spec_object ("backend-store", "backend-store", "backend-store", FOLKS_TYPE_BACKEND_STORE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
809
g_object_class_install_property (G_OBJECT_CLASS (klass), FOLKS_INSPECT_CLIENT_SIGNAL_MANAGER, g_param_spec_object ("signal-manager", "signal-manager", "signal-manager", FOLKS_INSPECT_TYPE_SIGNAL_MANAGER, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
813
static void folks_inspect_client_instance_init (FolksInspectClient * self) {
814
self->priv = FOLKS_INSPECT_CLIENT_GET_PRIVATE (self);
818
static void folks_inspect_client_finalize (GObject* obj) {
819
FolksInspectClient * self;
820
self = FOLKS_INSPECT_CLIENT (obj);
821
_g_object_unref0 (self->commands);
822
_g_main_loop_unref0 (self->priv->main_loop);
823
_g_object_unref0 (self->priv->_aggregator);
824
_g_object_unref0 (self->priv->_backend_store);
825
_g_object_unref0 (self->priv->_signal_manager);
826
G_OBJECT_CLASS (folks_inspect_client_parent_class)->finalize (obj);
830
GType folks_inspect_client_get_type (void) {
831
static volatile gsize folks_inspect_client_type_id__volatile = 0;
832
if (g_once_init_enter (&folks_inspect_client_type_id__volatile)) {
833
static const GTypeInfo g_define_type_info = { sizeof (FolksInspectClientClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) folks_inspect_client_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FolksInspectClient), 0, (GInstanceInitFunc) folks_inspect_client_instance_init, NULL };
834
GType folks_inspect_client_type_id;
835
folks_inspect_client_type_id = g_type_register_static (G_TYPE_OBJECT, "FolksInspectClient", &g_define_type_info, 0);
836
g_once_init_leave (&folks_inspect_client_type_id__volatile, folks_inspect_client_type_id);
838
return folks_inspect_client_type_id__volatile;
842
static void _vala_folks_inspect_client_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
843
FolksInspectClient * self;
844
self = FOLKS_INSPECT_CLIENT (object);
845
switch (property_id) {
846
case FOLKS_INSPECT_CLIENT_AGGREGATOR:
847
g_value_set_object (value, folks_inspect_client_get_aggregator (self));
849
case FOLKS_INSPECT_CLIENT_BACKEND_STORE:
850
g_value_set_object (value, folks_inspect_client_get_backend_store (self));
852
case FOLKS_INSPECT_CLIENT_SIGNAL_MANAGER:
853
g_value_set_object (value, folks_inspect_client_get_signal_manager (self));
856
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
862
static void _vala_folks_inspect_client_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
863
FolksInspectClient * self;
864
self = FOLKS_INSPECT_CLIENT (object);
865
switch (property_id) {
866
case FOLKS_INSPECT_CLIENT_AGGREGATOR:
867
folks_inspect_client_set_aggregator (self, g_value_get_object (value));
869
case FOLKS_INSPECT_CLIENT_BACKEND_STORE:
870
folks_inspect_client_set_backend_store (self, g_value_get_object (value));
872
case FOLKS_INSPECT_CLIENT_SIGNAL_MANAGER:
873
folks_inspect_client_set_signal_manager (self, g_value_get_object (value));
876
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
882
FolksInspectCommand* folks_inspect_command_construct (GType object_type, FolksInspectClient* client) {
883
FolksInspectCommand* self = NULL;
884
FolksInspectClient* _tmp0_;
885
FolksInspectClient* _tmp1_;
886
g_return_val_if_fail (client != NULL, NULL);
887
self = (FolksInspectCommand*) g_type_create_instance (object_type);
888
_tmp0_ = _g_object_ref0 (client);
890
_g_object_unref0 (self->client);
891
self->client = _tmp1_;
896
static void folks_inspect_command_real_run (FolksInspectCommand* self, const gchar* command_string) {
897
g_return_if_fail (self != NULL);
898
g_critical ("Type `%s' does not implement abstract method `folks_inspect_command_run'", g_type_name (G_TYPE_FROM_INSTANCE (self)));
903
void folks_inspect_command_run (FolksInspectCommand* self, const gchar* command_string) {
904
FOLKS_INSPECT_COMMAND_GET_CLASS (self)->run (self, command_string);
908
static gchar** folks_inspect_command_real_complete_subcommand (FolksInspectCommand* self, const gchar* subcommand) {
909
gchar** result = NULL;
910
g_return_val_if_fail (self != NULL, NULL);
911
g_return_val_if_fail (subcommand != NULL, NULL);
917
gchar** folks_inspect_command_complete_subcommand (FolksInspectCommand* self, const gchar* subcommand) {
918
return FOLKS_INSPECT_COMMAND_GET_CLASS (self)->complete_subcommand (self, subcommand);
922
const gchar* folks_inspect_command_get_name (FolksInspectCommand* self) {
923
return FOLKS_INSPECT_COMMAND_GET_CLASS (self)->get_name (self);
927
const gchar* folks_inspect_command_get_description (FolksInspectCommand* self) {
928
return FOLKS_INSPECT_COMMAND_GET_CLASS (self)->get_description (self);
932
const gchar* folks_inspect_command_get_help (FolksInspectCommand* self) {
933
return FOLKS_INSPECT_COMMAND_GET_CLASS (self)->get_help (self);
937
static void folks_inspect_value_command_init (GValue* value) {
938
value->data[0].v_pointer = NULL;
942
static void folks_inspect_value_command_free_value (GValue* value) {
943
if (value->data[0].v_pointer) {
944
folks_inspect_command_unref (value->data[0].v_pointer);
949
static void folks_inspect_value_command_copy_value (const GValue* src_value, GValue* dest_value) {
950
if (src_value->data[0].v_pointer) {
951
dest_value->data[0].v_pointer = folks_inspect_command_ref (src_value->data[0].v_pointer);
953
dest_value->data[0].v_pointer = NULL;
958
static gpointer folks_inspect_value_command_peek_pointer (const GValue* value) {
959
return value->data[0].v_pointer;
963
static gchar* folks_inspect_value_command_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
964
if (collect_values[0].v_pointer) {
965
FolksInspectCommand* object;
966
object = collect_values[0].v_pointer;
967
if (object->parent_instance.g_class == NULL) {
968
return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
969
} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
970
return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
972
value->data[0].v_pointer = folks_inspect_command_ref (object);
974
value->data[0].v_pointer = NULL;
980
static gchar* folks_inspect_value_command_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
981
FolksInspectCommand** object_p;
982
object_p = collect_values[0].v_pointer;
984
return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
986
if (!value->data[0].v_pointer) {
988
} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
989
*object_p = value->data[0].v_pointer;
991
*object_p = folks_inspect_command_ref (value->data[0].v_pointer);
997
GParamSpec* folks_inspect_param_spec_command (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
998
FolksInspectParamSpecCommand* spec;
999
g_return_val_if_fail (g_type_is_a (object_type, FOLKS_INSPECT_TYPE_COMMAND), NULL);
1000
spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
1001
G_PARAM_SPEC (spec)->value_type = object_type;
1002
return G_PARAM_SPEC (spec);
1006
gpointer folks_inspect_value_get_command (const GValue* value) {
1007
g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, FOLKS_INSPECT_TYPE_COMMAND), NULL);
1008
return value->data[0].v_pointer;
1012
void folks_inspect_value_set_command (GValue* value, gpointer v_object) {
1013
FolksInspectCommand* old;
1014
g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, FOLKS_INSPECT_TYPE_COMMAND));
1015
old = value->data[0].v_pointer;
1017
g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, FOLKS_INSPECT_TYPE_COMMAND));
1018
g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
1019
value->data[0].v_pointer = v_object;
1020
folks_inspect_command_ref (value->data[0].v_pointer);
1022
value->data[0].v_pointer = NULL;
1025
folks_inspect_command_unref (old);
1030
void folks_inspect_value_take_command (GValue* value, gpointer v_object) {
1031
FolksInspectCommand* old;
1032
g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, FOLKS_INSPECT_TYPE_COMMAND));
1033
old = value->data[0].v_pointer;
1035
g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, FOLKS_INSPECT_TYPE_COMMAND));
1036
g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
1037
value->data[0].v_pointer = v_object;
1039
value->data[0].v_pointer = NULL;
1042
folks_inspect_command_unref (old);
1047
static void folks_inspect_command_class_init (FolksInspectCommandClass * klass) {
1048
folks_inspect_command_parent_class = g_type_class_peek_parent (klass);
1049
FOLKS_INSPECT_COMMAND_CLASS (klass)->finalize = folks_inspect_command_finalize;
1050
FOLKS_INSPECT_COMMAND_CLASS (klass)->run = folks_inspect_command_real_run;
1051
FOLKS_INSPECT_COMMAND_CLASS (klass)->complete_subcommand = folks_inspect_command_real_complete_subcommand;
1055
static void folks_inspect_command_instance_init (FolksInspectCommand * self) {
1056
self->ref_count = 1;
1060
static void folks_inspect_command_finalize (FolksInspectCommand* obj) {
1061
FolksInspectCommand * self;
1062
self = FOLKS_INSPECT_COMMAND (obj);
1063
_g_object_unref0 (self->client);
1067
GType folks_inspect_command_get_type (void) {
1068
static volatile gsize folks_inspect_command_type_id__volatile = 0;
1069
if (g_once_init_enter (&folks_inspect_command_type_id__volatile)) {
1070
static const GTypeValueTable g_define_type_value_table = { folks_inspect_value_command_init, folks_inspect_value_command_free_value, folks_inspect_value_command_copy_value, folks_inspect_value_command_peek_pointer, "p", folks_inspect_value_command_collect_value, "p", folks_inspect_value_command_lcopy_value };
1071
static const GTypeInfo g_define_type_info = { sizeof (FolksInspectCommandClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) folks_inspect_command_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FolksInspectCommand), 0, (GInstanceInitFunc) folks_inspect_command_instance_init, &g_define_type_value_table };
1072
static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
1073
GType folks_inspect_command_type_id;
1074
folks_inspect_command_type_id = g_type_register_fundamental (g_type_fundamental_next (), "FolksInspectCommand", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT);
1075
g_once_init_leave (&folks_inspect_command_type_id__volatile, folks_inspect_command_type_id);
1077
return folks_inspect_command_type_id__volatile;
1081
gpointer folks_inspect_command_ref (gpointer instance) {
1082
FolksInspectCommand* self;
1084
g_atomic_int_inc (&self->ref_count);
1089
void folks_inspect_command_unref (gpointer instance) {
1090
FolksInspectCommand* self;
1092
if (g_atomic_int_dec_and_test (&self->ref_count)) {
1093
FOLKS_INSPECT_COMMAND_GET_CLASS (self)->finalize (self);
1094
g_type_free_instance ((GTypeInstance *) self);
1099
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
1100
if ((array != NULL) && (destroy_func != NULL)) {
1102
for (i = 0; i < array_length; i = i + 1) {
1103
if (((gpointer*) array)[i] != NULL) {
1104
destroy_func (((gpointer*) array)[i]);
1111
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
1112
_vala_array_destroy (array, array_length, destroy_func);
1117
static gint _vala_array_length (gpointer array) {
1121
while (((gpointer*) array)[length]) {