/* mutex_locks.c generated by valac 0.16.0, the Vala compiler
 * generated from mutex_locks.vala, do not modify */


#include <glib.h>
#include <glib-object.h>


#define PDFPC_TYPE_MUTEX_LOCKS (pdfpc_mutex_locks_get_type ())
#define PDFPC_MUTEX_LOCKS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PDFPC_TYPE_MUTEX_LOCKS, pdfpcMutexLocks))
#define PDFPC_MUTEX_LOCKS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PDFPC_TYPE_MUTEX_LOCKS, pdfpcMutexLocksClass))
#define PDFPC_IS_MUTEX_LOCKS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PDFPC_TYPE_MUTEX_LOCKS))
#define PDFPC_IS_MUTEX_LOCKS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PDFPC_TYPE_MUTEX_LOCKS))
#define PDFPC_MUTEX_LOCKS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PDFPC_TYPE_MUTEX_LOCKS, pdfpcMutexLocksClass))

typedef struct _pdfpcMutexLocks pdfpcMutexLocks;
typedef struct _pdfpcMutexLocksClass pdfpcMutexLocksClass;
typedef struct _pdfpcMutexLocksPrivate pdfpcMutexLocksPrivate;
#define _g_mutex_free0(var) ((var == NULL) ? NULL : (var = (g_mutex_free (var), NULL)))

struct _pdfpcMutexLocks {
	GObject parent_instance;
	pdfpcMutexLocksPrivate * priv;
};

struct _pdfpcMutexLocksClass {
	GObjectClass parent_class;
};


static gpointer pdfpc_mutex_locks_parent_class = NULL;
extern GMutex* pdfpc_mutex_locks_poppler;
GMutex* pdfpc_mutex_locks_poppler = NULL;

GType pdfpc_mutex_locks_get_type (void) G_GNUC_CONST;
enum  {
	PDFPC_MUTEX_LOCKS_DUMMY_PROPERTY
};
void pdfpc_mutex_locks_init (void);
pdfpcMutexLocks* pdfpc_mutex_locks_new (void);
pdfpcMutexLocks* pdfpc_mutex_locks_construct (GType object_type);
static void pdfpc_mutex_locks_finalize (GObject* obj);


/**
         * Initialize all used mutex objects for the first time
         */
void pdfpc_mutex_locks_init (void) {
	GMutex* _tmp0_;
	_tmp0_ = g_mutex_new ();
	_g_mutex_free0 (pdfpc_mutex_locks_poppler);
	pdfpc_mutex_locks_poppler = _tmp0_;
}


pdfpcMutexLocks* pdfpc_mutex_locks_construct (GType object_type) {
	pdfpcMutexLocks * self = NULL;
	self = (pdfpcMutexLocks*) g_object_new (object_type, NULL);
	return self;
}


pdfpcMutexLocks* pdfpc_mutex_locks_new (void) {
	return pdfpc_mutex_locks_construct (PDFPC_TYPE_MUTEX_LOCKS);
}


static void pdfpc_mutex_locks_class_init (pdfpcMutexLocksClass * klass) {
	pdfpc_mutex_locks_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = pdfpc_mutex_locks_finalize;
}


static void pdfpc_mutex_locks_instance_init (pdfpcMutexLocks * self) {
}


static void pdfpc_mutex_locks_finalize (GObject* obj) {
	pdfpcMutexLocks * self;
	self = PDFPC_MUTEX_LOCKS (obj);
	G_OBJECT_CLASS (pdfpc_mutex_locks_parent_class)->finalize (obj);
}


/**
     * Static property container holding all mutex locks, which are needed
     * throughout the application.
     */
GType pdfpc_mutex_locks_get_type (void) {
	static volatile gsize pdfpc_mutex_locks_type_id__volatile = 0;
	if (g_once_init_enter (&pdfpc_mutex_locks_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (pdfpcMutexLocksClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pdfpc_mutex_locks_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (pdfpcMutexLocks), 0, (GInstanceInitFunc) pdfpc_mutex_locks_instance_init, NULL };
		GType pdfpc_mutex_locks_type_id;
		pdfpc_mutex_locks_type_id = g_type_register_static (G_TYPE_OBJECT, "pdfpcMutexLocks", &g_define_type_info, 0);
		g_once_init_leave (&pdfpc_mutex_locks_type_id__volatile, pdfpc_mutex_locks_type_id);
	}
	return pdfpc_mutex_locks_type_id__volatile;
}



