/* Generated by GOB (v2.0.11)   (do not edit directly) */

#include <glib.h>
#include <glib-object.h>
#ifndef __GNOME_PILOT_CONDUIT_MANAGEMENT_H__
#define __GNOME_PILOT_CONDUIT_MANAGEMENT_H__

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */



#include <glib.h>
#include <gtk/gtkobject.h>
#include <gpilotd/gnome-pilot-conduit.h>
#include <gmodule.h>

#ifdef DLOPEN_TEST
#include <dlfcn.h>
#endif

enum GnomePilotConduitMgmtError {
	GNOME_PILOT_CONDUIT_MGMT_OK,
	GNOME_PILOT_CONDUIT_MGMT_ALREADY_LIVE,
	GNOME_PILOT_CONDUIT_MGMT_ERROR,
	GNOME_PILOT_CONDUIT_MGMT_FATAL
};

enum GnomePilotConduitType {
	GNOME_PILOT_CONDUIT_TYPE_SHLIB,
};

enum GnomePilotConduitFilter {
	GNOME_PILOT_CONDUIT_MGMT_ID=0,
	GNOME_PILOT_CONDUIT_MGMT_NAME
};

typedef struct _GnomePilotConduitMgmtData GnomePilotConduitMgmtData;
struct _GnomePilotConduitMgmtData {
	/* The id of the conduit */
	gchar *id;
	/* The locale name of the conduit */
	gchar *name;
	/* The type of the conduit, sharedlib or whatgives */
	enum GnomePilotConduitType type;
	/* Where the conduit cab be found */
	gchar *location;
	/* A hash of all attributes of type string, note
	   the local translation overwrites others. */
	GHashTable *string_attributes;
};


/*
 * Type checking and casting macros
 */
#define GNOME_TYPE_PILOT_CONDUIT_MANAGEMENT	(gnome_pilot_conduit_management_get_type())
#define GNOME_PILOT_CONDUIT_MANAGEMENT(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), gnome_pilot_conduit_management_get_type(), GnomePilotConduitManagement)
#define GNOME_PILOT_CONDUIT_MANAGEMENT_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), gnome_pilot_conduit_management_get_type(), GnomePilotConduitManagement const)
#define GNOME_PILOT_CONDUIT_MANAGEMENT_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), gnome_pilot_conduit_management_get_type(), GnomePilotConduitManagementClass)
#define GNOME_IS_PILOT_CONDUIT_MANAGEMENT(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), gnome_pilot_conduit_management_get_type ())

#define GNOME_PILOT_CONDUIT_MANAGEMENT_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), gnome_pilot_conduit_management_get_type(), GnomePilotConduitManagementClass)

/* Private structure type */
typedef struct _GnomePilotConduitManagementPrivate GnomePilotConduitManagementPrivate;

/*
 * Main object structure
 */
#ifndef __TYPEDEF_GNOME_PILOT_CONDUIT_MANAGEMENT__
#define __TYPEDEF_GNOME_PILOT_CONDUIT_MANAGEMENT__
typedef struct _GnomePilotConduitManagement GnomePilotConduitManagement;
#endif
struct _GnomePilotConduitManagement {
	GtkObject __parent__;
	/*< private >*/
	GnomePilotConduitManagementPrivate *_priv;
};

/*
 * Class definition
 */
typedef struct _GnomePilotConduitManagementClass GnomePilotConduitManagementClass;
struct _GnomePilotConduitManagementClass {
	GtkObjectClass __parent__;
};


/*
 * Public methods
 */
GType	gnome_pilot_conduit_management_get_type	(void);
GnomePilotConduitManagement * 	gnome_pilot_conduit_management_new	(gchar * _name,
					enum GnomePilotConduitFilter filter);
void 	gnome_pilot_conduit_management_destroy	(GnomePilotConduitManagement * self);
const gchar * 	gnome_pilot_conduit_management_get_name	(GnomePilotConduitManagement * self);
const gchar * 	gnome_pilot_conduit_management_get_id	(GnomePilotConduitManagement * self);
gint 	gnome_pilot_conduit_management_get_conduits	(GList ** output,
					enum GnomePilotConduitFilter filter);
GList * 	gnome_pilot_conduit_management_get_attribute_list	(GnomePilotConduitManagement * self,
					gboolean filter_lang);
const gpointer * 	gnome_pilot_conduit_management_get_attribute	(GnomePilotConduitManagement * self,
					gchar * attribute_name,
					gchar * lang);
gint 	gnome_pilot_conduit_management_instantiate_conduit	(GnomePilotConduitManagement * self,
					GPilotPilot * pilot,
					GnomePilotConduit ** instance);
gint 	gnome_pilot_conduit_management_destroy_conduit	(GnomePilotConduitManagement * self,
					GnomePilotConduit ** instance);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif
