/* get-events-with-id.c generated by valac 0.29.2.5-8632, the Vala compiler
 * generated from get-events-with-id.vala, do not modify */


#include <glib.h>
#include <glib-object.h>
#include "zeitgeist.h"
#include <gio/gio.h>
#include "zeitgeist-datamodel.h"
#include <stdio.h>

typedef struct _Block1Data Block1Data;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_main_loop_unref0(var) ((var == NULL) ? NULL : (var = (g_main_loop_unref (var), NULL)))
#define _g_array_unref0(var) ((var == NULL) ? NULL : (var = (g_array_unref (var), NULL)))

struct _Block1Data {
	int _ref_count_;
	GArray* ids;
	GMainLoop* loop;
	ZeitgeistLog* zg;
};



gint _vala_main (void);
static Block1Data* block1_data_ref (Block1Data* _data1_);
static void block1_data_unref (void * _userdata_);
static void __lambda4_ (Block1Data* _data1_, GObject* obj, GAsyncResult* res);
static void ___lambda4__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self);


static Block1Data* block1_data_ref (Block1Data* _data1_) {
	g_atomic_int_inc (&_data1_->_ref_count_);
	return _data1_;
}


static void block1_data_unref (void * _userdata_) {
	Block1Data* _data1_;
	_data1_ = (Block1Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
		_g_object_unref0 (_data1_->zg);
		_g_main_loop_unref0 (_data1_->loop);
		_g_array_unref0 (_data1_->ids);
		g_slice_free (Block1Data, _data1_);
	}
}


static void __lambda4_ (Block1Data* _data1_, GObject* obj, GAsyncResult* res) {
	ZeitgeistResultSet* events = NULL;
	GAsyncResult* _tmp0_ = NULL;
	ZeitgeistResultSet* _tmp1_ = NULL;
	GError * _inner_error_ = NULL;
	g_return_if_fail (res != NULL);
	_tmp0_ = res;
	_tmp1_ = zeitgeist_log_get_events_finish (_data1_->zg, _tmp0_, &_inner_error_);
	events = _tmp1_;
	if (G_UNLIKELY (_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;
	}
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp2_ = FALSE;
			_tmp2_ = TRUE;
			while (TRUE) {
				gint _tmp4_ = 0;
				guint _tmp5_ = 0U;
				ZeitgeistEvent* event = NULL;
				ZeitgeistEvent* _tmp6_ = NULL;
				ZeitgeistEvent* _tmp7_ = NULL;
				if (!_tmp2_) {
					gint _tmp3_ = 0;
					_tmp3_ = i;
					i = _tmp3_ + 1;
				}
				_tmp2_ = FALSE;
				_tmp4_ = i;
				_tmp5_ = zeitgeist_result_set_size (events);
				if (!(((guint) _tmp4_) < _tmp5_)) {
					break;
				}
				_tmp6_ = zeitgeist_result_set_next_value (events);
				event = _tmp6_;
				_tmp7_ = event;
				if (_tmp7_ != NULL) {
					FILE* _tmp8_ = NULL;
					ZeitgeistEvent* _tmp9_ = NULL;
					GPtrArray* _tmp10_ = NULL;
					GPtrArray* _tmp11_ = NULL;
					gconstpointer _tmp12_ = NULL;
					const gchar* _tmp13_ = NULL;
					const gchar* _tmp14_ = NULL;
					_tmp8_ = stdout;
					_tmp9_ = event;
					_tmp10_ = zeitgeist_event_get_subjects (_tmp9_);
					_tmp11_ = _tmp10_;
					_tmp12_ = g_ptr_array_index (_tmp11_, (guint) 0);
					_tmp13_ = zeitgeist_subject_get_uri ((ZeitgeistSubject*) _tmp12_);
					_tmp14_ = _tmp13_;
					fprintf (_tmp8_, "First subject: %s\n", _tmp14_);
				} else {
					FILE* _tmp15_ = NULL;
					gint _tmp16_ = 0;
					guint32 _tmp17_ = 0U;
					_tmp15_ = stdout;
					_tmp16_ = i;
					_tmp17_ = g_array_index (_data1_->ids, guint32, (guint) _tmp16_);
					fprintf (_tmp15_, "Event %d doesn't exist.\n", (gint) _tmp17_);
				}
				_g_object_unref0 (event);
			}
		}
	}
	g_main_loop_quit (_data1_->loop);
	_g_object_unref0 (events);
}


static void ___lambda4__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self) {
	__lambda4_ (self, source_object, res);
	block1_data_unref (self);
}


gint _vala_main (void) {
	gint result = 0;
	Block1Data* _data1_;
	GArray* _tmp0_ = NULL;
	guint32 id1 = 0U;
	guint32 id2 = 0U;
	GMainLoop* _tmp1_ = NULL;
	ZeitgeistLog* _tmp2_ = NULL;
	_data1_ = g_slice_new0 (Block1Data);
	_data1_->_ref_count_ = 1;
	_tmp0_ = g_array_new (TRUE, TRUE, sizeof (guint32));
	_data1_->ids = _tmp0_;
	id1 = (guint32) 2100000;
	id2 = (guint32) 222;
	g_array_append_val (_data1_->ids, id1);
	g_array_append_val (_data1_->ids, id2);
	_tmp1_ = g_main_loop_new (NULL, FALSE);
	_data1_->loop = _tmp1_;
	_tmp2_ = zeitgeist_log_new ();
	_data1_->zg = _tmp2_;
	zeitgeist_log_get_events (_data1_->zg, _data1_->ids, NULL, ___lambda4__gasync_ready_callback, block1_data_ref (_data1_));
	g_main_loop_run (_data1_->loop);
	result = 0;
	block1_data_unref (_data1_);
	_data1_ = NULL;
	return result;
}


int main (int argc, char ** argv) {
#if !GLIB_CHECK_VERSION (2,35,0)
	g_type_init ();
#endif
	return _vala_main ();
}



