/* astal-io.h generated by valac 0.56.19, the Vala compiler, do not modify */

#ifndef __ASTAL_IO_H__
#define __ASTAL_IO_H__

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

G_BEGIN_DECLS

#define ASTAL_IO_MAJOR_VERSION 0
#define ASTAL_IO_MINOR_VERSION 1
#define ASTAL_IO_MICRO_VERSION 0
#define ASTAL_IO_VERSION "0.1.0"
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define ASTAL_IO_TYPE_APP_ERROR (astal_io_app_error_get_type ())

#define ASTAL_IO_TYPE_APPLICATION (astal_io_application_get_type ())
#define ASTAL_IO_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_IO_TYPE_APPLICATION, AstalIOApplication))
#define ASTAL_IO_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_IO_TYPE_APPLICATION))
#define ASTAL_IO_APPLICATION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ASTAL_IO_TYPE_APPLICATION, AstalIOApplicationIface))

typedef struct _AstalIOApplication AstalIOApplication;
typedef struct _AstalIOApplicationIface AstalIOApplicationIface;

#define ASTAL_IO_TYPE_DAEMON (astal_io_daemon_get_type ())
#define ASTAL_IO_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_IO_TYPE_DAEMON, AstalIODaemon))
#define ASTAL_IO_DAEMON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_IO_TYPE_DAEMON, AstalIODaemonClass))
#define ASTAL_IO_IS_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_IO_TYPE_DAEMON))
#define ASTAL_IO_IS_DAEMON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_IO_TYPE_DAEMON))
#define ASTAL_IO_DAEMON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_IO_TYPE_DAEMON, AstalIODaemonClass))

typedef struct _AstalIODaemon AstalIODaemon;
typedef struct _AstalIODaemonClass AstalIODaemonClass;
typedef struct _AstalIODaemonPrivate AstalIODaemonPrivate;

#define ASTAL_IO_TYPE_PROCESS (astal_io_process_get_type ())
#define ASTAL_IO_PROCESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_IO_TYPE_PROCESS, AstalIOProcess))
#define ASTAL_IO_PROCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_IO_TYPE_PROCESS, AstalIOProcessClass))
#define ASTAL_IO_IS_PROCESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_IO_TYPE_PROCESS))
#define ASTAL_IO_IS_PROCESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_IO_TYPE_PROCESS))
#define ASTAL_IO_PROCESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_IO_TYPE_PROCESS, AstalIOProcessClass))

typedef struct _AstalIOProcess AstalIOProcess;
typedef struct _AstalIOProcessClass AstalIOProcessClass;
typedef struct _AstalIOProcessPrivate AstalIOProcessPrivate;

#define ASTAL_IO_TYPE_TIME (astal_io_time_get_type ())
#define ASTAL_IO_TIME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_IO_TYPE_TIME, AstalIOTime))
#define ASTAL_IO_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_IO_TYPE_TIME, AstalIOTimeClass))
#define ASTAL_IO_IS_TIME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_IO_TYPE_TIME))
#define ASTAL_IO_IS_TIME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_IO_TYPE_TIME))
#define ASTAL_IO_TIME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_IO_TYPE_TIME, AstalIOTimeClass))

typedef struct _AstalIOTime AstalIOTime;
typedef struct _AstalIOTimeClass AstalIOTimeClass;
typedef struct _AstalIOTimePrivate AstalIOTimePrivate;

#define ASTAL_IO_TYPE_VARIABLE_BASE (astal_io_variable_base_get_type ())
#define ASTAL_IO_VARIABLE_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_IO_TYPE_VARIABLE_BASE, AstalIOVariableBase))
#define ASTAL_IO_VARIABLE_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_IO_TYPE_VARIABLE_BASE, AstalIOVariableBaseClass))
#define ASTAL_IO_IS_VARIABLE_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_IO_TYPE_VARIABLE_BASE))
#define ASTAL_IO_IS_VARIABLE_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_IO_TYPE_VARIABLE_BASE))
#define ASTAL_IO_VARIABLE_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_IO_TYPE_VARIABLE_BASE, AstalIOVariableBaseClass))

typedef struct _AstalIOVariableBase AstalIOVariableBase;
typedef struct _AstalIOVariableBaseClass AstalIOVariableBaseClass;
typedef struct _AstalIOVariableBasePrivate AstalIOVariableBasePrivate;

#define ASTAL_IO_TYPE_VARIABLE (astal_io_variable_get_type ())
#define ASTAL_IO_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ASTAL_IO_TYPE_VARIABLE, AstalIOVariable))
#define ASTAL_IO_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ASTAL_IO_TYPE_VARIABLE, AstalIOVariableClass))
#define ASTAL_IO_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ASTAL_IO_TYPE_VARIABLE))
#define ASTAL_IO_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ASTAL_IO_TYPE_VARIABLE))
#define ASTAL_IO_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ASTAL_IO_TYPE_VARIABLE, AstalIOVariableClass))

typedef struct _AstalIOVariable AstalIOVariable;
typedef struct _AstalIOVariableClass AstalIOVariableClass;
typedef struct _AstalIOVariablePrivate AstalIOVariablePrivate;

typedef enum  {
	ASTAL_IO_APP_ERROR_NAME_OCCUPIED,
	ASTAL_IO_APP_ERROR_TAKEOVER_FAILED
} AstalIOAppError;
#define ASTAL_IO_APP_ERROR astal_io_app_error_quark ()

struct _AstalIOApplicationIface {
	GTypeInterface parent_iface;
	void (*quit) (AstalIOApplication* self, GError** error);
	void (*inspector) (AstalIOApplication* self, GError** error);
	void (*toggle_window) (AstalIOApplication* self, const gchar* window, GError** error);
	void (*acquire_socket) (AstalIOApplication* self, GError** error);
	void (*request) (AstalIOApplication* self, const gchar* request, GSocketConnection* conn, GError** error);
	gchar* (*get_instance_name) (AstalIOApplication* self);
	void (*set_instance_name) (AstalIOApplication* self, const gchar* value);
};

struct _AstalIODaemon {
	GApplication parent_instance;
	AstalIODaemonPrivate * priv;
};

struct _AstalIODaemonClass {
	GApplicationClass parent_class;
	void (*request) (AstalIODaemon* self, const gchar* request, GSocketConnection* conn, GError** error);
};

struct _AstalIOProcess {
	GObject parent_instance;
	AstalIOProcessPrivate * priv;
};

struct _AstalIOProcessClass {
	GObjectClass parent_class;
};

struct _AstalIOTime {
	GObject parent_instance;
	AstalIOTimePrivate * priv;
};

struct _AstalIOTimeClass {
	GObjectClass parent_class;
};

struct _AstalIOVariableBase {
	GObject parent_instance;
	AstalIOVariableBasePrivate * priv;
};

struct _AstalIOVariableBaseClass {
	GObjectClass parent_class;
};

struct _AstalIOVariable {
	AstalIOVariableBase parent_instance;
	AstalIOVariablePrivate * priv;
};

struct _AstalIOVariableClass {
	AstalIOVariableBaseClass parent_class;
};

VALA_EXTERN GQuark astal_io_app_error_quark (void);
VALA_EXTERN GType astal_io_app_error_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType astal_io_application_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalIOApplication, g_object_unref)
VALA_EXTERN void astal_io_application_quit (AstalIOApplication* self,
                                GError** error);
VALA_EXTERN void astal_io_application_inspector (AstalIOApplication* self,
                                     GError** error);
VALA_EXTERN void astal_io_application_toggle_window (AstalIOApplication* self,
                                         const gchar* window,
                                         GError** error);
VALA_EXTERN void astal_io_application_acquire_socket (AstalIOApplication* self,
                                          GError** error);
VALA_EXTERN void astal_io_application_request (AstalIOApplication* self,
                                   const gchar* request,
                                   GSocketConnection* conn,
                                   GError** error);
VALA_EXTERN gchar* astal_io_application_get_instance_name (AstalIOApplication* self);
VALA_EXTERN void astal_io_application_set_instance_name (AstalIOApplication* self,
                                             const gchar* value);
VALA_EXTERN GSocketService* astal_io_acquire_socket (AstalIOApplication* app,
                                         gchar** sock,
                                         GError** error);
VALA_EXTERN GList* astal_io_get_instances (void);
VALA_EXTERN void astal_io_quit_instance (const gchar* instance,
                             GError** error);
VALA_EXTERN void astal_io_open_inspector (const gchar* instance,
                              GError** error);
VALA_EXTERN void astal_io_toggle_window_by_name (const gchar* instance,
                                     const gchar* window,
                                     GError** error);
VALA_EXTERN gchar* astal_io_send_message (const gchar* instance,
                              const gchar* request,
                              GError** error) G_GNUC_DEPRECATED ;
VALA_EXTERN gchar* astal_io_send_request (const gchar* instance,
                              const gchar* request,
                              GError** error);
VALA_EXTERN void astal_io_read_sock (GSocketConnection* conn,
                         GAsyncReadyCallback _callback_,
                         gpointer _user_data_);
VALA_EXTERN gchar* astal_io_read_sock_finish (GAsyncResult* _res_,
                                  GError** error);
VALA_EXTERN void astal_io_write_sock (GSocketConnection* conn,
                          const gchar* response,
                          GAsyncReadyCallback _callback_,
                          gpointer _user_data_);
VALA_EXTERN void astal_io_write_sock_finish (GAsyncResult* _res_,
                                 GError** error);
VALA_EXTERN GType astal_io_daemon_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalIODaemon, g_object_unref)
VALA_EXTERN guint astal_io_daemon_register_object (void* object,
                                       GDBusConnection* connection,
                                       const gchar* path,
                                       GError** error);
VALA_EXTERN void astal_io_daemon_request (AstalIODaemon* self,
                              const gchar* request,
                              GSocketConnection* conn,
                              GError** error);
VALA_EXTERN AstalIODaemon* astal_io_daemon_new (void);
VALA_EXTERN AstalIODaemon* astal_io_daemon_construct (GType object_type);
VALA_EXTERN gchar* astal_io_read_file (const gchar* path) G_GNUC_DEPRECATED ;
VALA_EXTERN void astal_io_read_file_async (const gchar* path,
                               GAsyncReadyCallback _callback_,
                               gpointer _user_data_) G_GNUC_DEPRECATED ;
VALA_EXTERN gchar* astal_io_read_file_finish (GAsyncResult* _res_,
                                  GError** error) G_GNUC_DEPRECATED ;
VALA_EXTERN void astal_io_write_file (const gchar* path,
                          const gchar* content) G_GNUC_DEPRECATED ;
VALA_EXTERN void astal_io_write_file_async (const gchar* path,
                                const gchar* content,
                                GAsyncReadyCallback _callback_,
                                gpointer _user_data_) G_GNUC_DEPRECATED ;
VALA_EXTERN void astal_io_write_file_finish (GAsyncResult* _res_,
                                 GError** error) G_GNUC_DEPRECATED ;
VALA_EXTERN GFileMonitor* astal_io_monitor_file (const gchar* path,
                                     GClosure* callback) G_GNUC_DEPRECATED ;
VALA_EXTERN GType astal_io_process_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalIOProcess, g_object_unref)
VALA_EXTERN void astal_io_process_kill (AstalIOProcess* self);
VALA_EXTERN void astal_io_process_signal (AstalIOProcess* self,
                              gint signal_num);
VALA_EXTERN void astal_io_process_write (AstalIOProcess* self,
                             const gchar* in,
                             GError** error);
VALA_EXTERN void astal_io_process_write_async (AstalIOProcess* self,
                                   const gchar* in,
                                   GAsyncReadyCallback _callback_,
                                   gpointer _user_data_);
VALA_EXTERN void astal_io_process_write_finish (AstalIOProcess* self,
                                    GAsyncResult* _res_);
VALA_EXTERN AstalIOProcess* astal_io_process_new (gchar** cmd,
                                      gint cmd_length1,
                                      GError** error);
VALA_EXTERN AstalIOProcess* astal_io_process_construct (GType object_type,
                                            gchar** cmd,
                                            gint cmd_length1,
                                            GError** error);
VALA_EXTERN AstalIOProcess* astal_io_process_subprocessv (gchar** cmd,
                                              gint cmd_length1,
                                              GError** error);
VALA_EXTERN AstalIOProcess* astal_io_process_subprocess (const gchar* cmd,
                                             GError** error);
VALA_EXTERN gchar* astal_io_process_execv (gchar** cmd,
                               gint cmd_length1,
                               GError** error);
VALA_EXTERN gchar* astal_io_process_exec (const gchar* cmd,
                              GError** error);
VALA_EXTERN void astal_io_process_exec_asyncv (gchar** cmd,
                                   gint cmd_length1,
                                   GAsyncReadyCallback _callback_,
                                   gpointer _user_data_);
VALA_EXTERN gchar* astal_io_process_exec_asyncv_finish (GAsyncResult* _res_,
                                            GError** error);
VALA_EXTERN void astal_io_process_exec_async (const gchar* cmd,
                                  GAsyncReadyCallback _callback_,
                                  gpointer _user_data_);
VALA_EXTERN gchar* astal_io_process_exec_finish (GAsyncResult* _res_,
                                     GError** error);
VALA_EXTERN gchar** astal_io_process_get_argv (AstalIOProcess* self,
                                   gint* result_length1);
VALA_EXTERN GType astal_io_time_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalIOTime, g_object_unref)
VALA_EXTERN AstalIOTime* astal_io_time_new_interval_prio (guint interval,
                                              gint prio,
                                              GClosure* fn);
VALA_EXTERN AstalIOTime* astal_io_time_construct_interval_prio (GType object_type,
                                                    guint interval,
                                                    gint prio,
                                                    GClosure* fn);
VALA_EXTERN AstalIOTime* astal_io_time_new_timeout_prio (guint timeout,
                                             gint prio,
                                             GClosure* fn);
VALA_EXTERN AstalIOTime* astal_io_time_construct_timeout_prio (GType object_type,
                                                   guint timeout,
                                                   gint prio,
                                                   GClosure* fn);
VALA_EXTERN AstalIOTime* astal_io_time_new_idle_prio (gint prio,
                                          GClosure* fn);
VALA_EXTERN AstalIOTime* astal_io_time_construct_idle_prio (GType object_type,
                                                gint prio,
                                                GClosure* fn);
VALA_EXTERN AstalIOTime* astal_io_time_interval (guint interval,
                                     GClosure* fn);
VALA_EXTERN AstalIOTime* astal_io_time_timeout (guint timeout,
                                    GClosure* fn);
VALA_EXTERN AstalIOTime* astal_io_time_idle (GClosure* fn);
VALA_EXTERN void astal_io_time_cancel (AstalIOTime* self);
VALA_EXTERN AstalIOTime* astal_io_time_new (void);
VALA_EXTERN AstalIOTime* astal_io_time_construct (GType object_type);
VALA_EXTERN GType astal_io_variable_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalIOVariableBase, g_object_unref)
VALA_EXTERN void astal_io_variable_base_emit_changed (AstalIOVariableBase* self);
VALA_EXTERN void astal_io_variable_base_emit_dropped (AstalIOVariableBase* self);
VALA_EXTERN void astal_io_variable_base_emit_error (AstalIOVariableBase* self,
                                        const gchar* err);
VALA_EXTERN AstalIOVariableBase* astal_io_variable_base_new (void);
VALA_EXTERN AstalIOVariableBase* astal_io_variable_base_construct (GType object_type);
VALA_EXTERN GType astal_io_variable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (AstalIOVariable, g_object_unref)
VALA_EXTERN AstalIOVariable* astal_io_variable_new (GValue* init);
VALA_EXTERN AstalIOVariable* astal_io_variable_construct (GType object_type,
                                              GValue* init);
VALA_EXTERN AstalIOVariable* astal_io_variable_poll (AstalIOVariable* self,
                                         guint interval,
                                         const gchar* exec,
                                         GClosure* transform,
                                         GError** error);
VALA_EXTERN AstalIOVariable* astal_io_variable_pollv (AstalIOVariable* self,
                                          guint interval,
                                          gchar** execv,
                                          gint execv_length1,
                                          GClosure* transform,
                                          GError** error);
VALA_EXTERN AstalIOVariable* astal_io_variable_pollfn (AstalIOVariable* self,
                                           guint interval,
                                           GClosure* fn,
                                           GError** error);
VALA_EXTERN AstalIOVariable* astal_io_variable_watch (AstalIOVariable* self,
                                          const gchar* exec,
                                          GClosure* transform,
                                          GError** error);
VALA_EXTERN AstalIOVariable* astal_io_variable_watchv (AstalIOVariable* self,
                                           gchar** execv,
                                           gint execv_length1,
                                           GClosure* transform,
                                           GError** error);
VALA_EXTERN void astal_io_variable_start_poll (AstalIOVariable* self,
                                   GError** error);
VALA_EXTERN void astal_io_variable_start_watch (AstalIOVariable* self,
                                    GError** error);
VALA_EXTERN void astal_io_variable_stop_poll (AstalIOVariable* self);
VALA_EXTERN void astal_io_variable_stop_watch (AstalIOVariable* self);
VALA_EXTERN gboolean astal_io_variable_is_polling (AstalIOVariable* self);
VALA_EXTERN gboolean astal_io_variable_is_watching (AstalIOVariable* self);
VALA_EXTERN void astal_io_variable_get_value (AstalIOVariable* self,
                                  GValue * result);
VALA_EXTERN void astal_io_variable_set_value (AstalIOVariable* self,
                                  GValue * value);

G_END_DECLS

#endif
