/* nala.h generated by valac 0.26.2, the Vala compiler, do not modify */


#ifndef __NALA_H__
#define __NALA_H__

#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>

G_BEGIN_DECLS


#define NALA_TYPE_QUEUE (nala_queue_get_type ())
#define NALA_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NALA_TYPE_QUEUE, NalaQueue))
#define NALA_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NALA_TYPE_QUEUE, NalaQueueClass))
#define NALA_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NALA_TYPE_QUEUE))
#define NALA_IS_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NALA_TYPE_QUEUE))
#define NALA_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NALA_TYPE_QUEUE, NalaQueueClass))

typedef struct _NalaQueue NalaQueue;
typedef struct _NalaQueueClass NalaQueueClass;
typedef struct _NalaQueuePrivate NalaQueuePrivate;

#define NALA_TYPE_APPLICATION (nala_application_get_type ())
#define NALA_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NALA_TYPE_APPLICATION, NalaApplication))
#define NALA_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NALA_TYPE_APPLICATION, NalaApplicationClass))
#define NALA_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NALA_TYPE_APPLICATION))
#define NALA_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NALA_TYPE_APPLICATION))
#define NALA_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NALA_TYPE_APPLICATION, NalaApplicationClass))

typedef struct _NalaApplication NalaApplication;
typedef struct _NalaApplicationClass NalaApplicationClass;

#define NALA_TYPE_WATCHER (nala_watcher_get_type ())
#define NALA_WATCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NALA_TYPE_WATCHER, NalaWatcher))
#define NALA_WATCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NALA_TYPE_WATCHER, NalaWatcherClass))
#define NALA_IS_WATCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NALA_TYPE_WATCHER))
#define NALA_IS_WATCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NALA_TYPE_WATCHER))
#define NALA_WATCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NALA_TYPE_WATCHER, NalaWatcherClass))

typedef struct _NalaWatcher NalaWatcher;
typedef struct _NalaWatcherClass NalaWatcherClass;

#define NALA_TYPE_WATCHER_POOL (nala_watcher_pool_get_type ())
#define NALA_WATCHER_POOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NALA_TYPE_WATCHER_POOL, NalaWatcherPool))
#define NALA_WATCHER_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NALA_TYPE_WATCHER_POOL, NalaWatcherPoolClass))
#define NALA_IS_WATCHER_POOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NALA_TYPE_WATCHER_POOL))
#define NALA_IS_WATCHER_POOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NALA_TYPE_WATCHER_POOL))
#define NALA_WATCHER_POOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NALA_TYPE_WATCHER_POOL, NalaWatcherPoolClass))

typedef struct _NalaWatcherPool NalaWatcherPool;
typedef struct _NalaWatcherPoolClass NalaWatcherPoolClass;
typedef struct _NalaWatcherPoolPrivate NalaWatcherPoolPrivate;
typedef struct _NalaWatcherPrivate NalaWatcherPrivate;
typedef struct _NalaApplicationPrivate NalaApplicationPrivate;

struct _NalaQueue {
	GObject parent_instance;
	NalaQueuePrivate * priv;
};

struct _NalaQueueClass {
	GObjectClass parent_class;
};

struct _NalaWatcherPool {
	GObject parent_instance;
	NalaWatcherPoolPrivate * priv;
};

struct _NalaWatcherPoolClass {
	GObjectClass parent_class;
};

struct _NalaWatcher {
	GObject parent_instance;
	NalaWatcherPrivate * priv;
};

struct _NalaWatcherClass {
	GObjectClass parent_class;
};

struct _NalaApplication {
	GObject parent_instance;
	NalaApplicationPrivate * priv;
};

struct _NalaApplicationClass {
	GObjectClass parent_class;
};


GType nala_queue_get_type (void) G_GNUC_CONST;
NalaQueue* nala_queue_new (gint* wait_time);
NalaQueue* nala_queue_construct (GType object_type, gint* wait_time);
GType nala_application_get_type (void) G_GNUC_CONST;
void nala_queue_add_application (NalaQueue* self, NalaApplication* app);
GType nala_watcher_get_type (void) G_GNUC_CONST;
void nala_queue_add_to_queue (NalaQueue* self, NalaWatcher* watcher, GFile* trigger, GFileMonitorEvent event);
guint nala_queue_get_wait_time (NalaQueue* self);
void nala_queue_set_wait_time (NalaQueue* self, guint value);
GType nala_watcher_pool_get_type (void) G_GNUC_CONST;
void nala_watcher_pool_add_watchers (NalaWatcherPool* self, gchar** paths, int paths_length1);
NalaWatcherPool* nala_watcher_pool_new (void);
NalaWatcherPool* nala_watcher_pool_construct (GType object_type);
NalaWatcher* nala_watcher_new (const gchar* path);
NalaWatcher* nala_watcher_construct (GType object_type, const gchar* path);
const gchar* nala_watcher_get_path (NalaWatcher* self);
void nala_watcher_set_path (NalaWatcher* self, const gchar* value);
NalaApplication* nala_application_new (const gchar* path, gchar** triggers, int triggers_length1);
NalaApplication* nala_application_construct (GType object_type, const gchar* path, gchar** triggers, int triggers_length1);
const gchar* nala_application_get_path (NalaApplication* self);
void nala_application_set_path (NalaApplication* self, const gchar* value);
gchar** nala_application_get_triggers (NalaApplication* self, int* result_length1);
void nala_application_set_triggers (NalaApplication* self, gchar** value, int value_length1);


G_END_DECLS

#endif
