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

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


#include "mn-authenticated-mailbox.h"

#ifndef __MN_PI_MAILBOX_H__
#define __MN_PI_MAILBOX_H__

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



#define MN_PI_MAILBOX_N_CONNECTION_TYPES	3


typedef enum {
	MN_PI_MAILBOX_CONNECTION_TYPE_NORMAL,
	MN_PI_MAILBOX_CONNECTION_TYPE_INBAND_SSL,
	MN_PI_MAILBOX_CONNECTION_TYPE_SSL
} MNPIMailboxConnectionType;
#define MN_TYPE_PI_MAILBOX_CONNECTION_TYPE mn_pi_mailbox_connection_type_get_type()
GType mn_pi_mailbox_connection_type_get_type (void);


/*
 * Type checking and casting macros
 */
#define MN_TYPE_PI_MAILBOX	(mn_pi_mailbox_get_type())
#define MN_PI_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pi_mailbox_get_type(), MNPIMailbox)
#define MN_PI_MAILBOX_CONST(obj)	G_TYPE_CHECK_INSTANCE_CAST((obj), mn_pi_mailbox_get_type(), MNPIMailbox const)
#define MN_PI_MAILBOX_CLASS(klass)	G_TYPE_CHECK_CLASS_CAST((klass), mn_pi_mailbox_get_type(), MNPIMailboxClass)
#define MN_IS_PI_MAILBOX(obj)	G_TYPE_CHECK_INSTANCE_TYPE((obj), mn_pi_mailbox_get_type ())

#define MN_PI_MAILBOX_GET_CLASS(obj)	G_TYPE_INSTANCE_GET_CLASS((obj), mn_pi_mailbox_get_type(), MNPIMailboxClass)

/* Private structure type */
typedef struct _MNPIMailboxPrivate MNPIMailboxPrivate;

/*
 * Main object structure
 */
#ifndef __TYPEDEF_MN_PI_MAILBOX__
#define __TYPEDEF_MN_PI_MAILBOX__
typedef struct _MNPIMailbox MNPIMailbox;
#endif
struct _MNPIMailbox {
	MNAuthenticatedMailbox __parent__;
	/*< public >*/
	MNPIMailboxConnectionType connection_type;
	char * authmech;
	char * hostname;
	int port;
	int runtime_port;
	/*< private >*/
	MNPIMailboxPrivate *_priv;
};

/*
 * Class definition
 */
typedef struct _MNPIMailboxClass MNPIMailboxClass;
struct _MNPIMailboxClass {
	MNAuthenticatedMailboxClass __parent__;
	int * default_ports;
};


/*
 * Public methods
 */
GType	mn_pi_mailbox_get_type	(void) G_GNUC_CONST;

/*
 * Argument wrapping macros
 */
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
#define MN_PI_MAILBOX_PROP_CONNECTION_TYPE(arg)    	"connection_type", __extension__ ({gint z = (arg); z;})
#define MN_PI_MAILBOX_GET_PROP_CONNECTION_TYPE(arg)	"connection_type", __extension__ ({gint *z = (arg); z;})
#define MN_PI_MAILBOX_PROP_AUTHMECH(arg)    	"authmech", __extension__ ({gchar *z = (arg); z;})
#define MN_PI_MAILBOX_GET_PROP_AUTHMECH(arg)	"authmech", __extension__ ({gchar **z = (arg); z;})
#define MN_PI_MAILBOX_PROP_HOSTNAME(arg)    	"hostname", __extension__ ({gchar *z = (arg); z;})
#define MN_PI_MAILBOX_GET_PROP_HOSTNAME(arg)	"hostname", __extension__ ({gchar **z = (arg); z;})
#define MN_PI_MAILBOX_PROP_PORT(arg)    	"port", __extension__ ({gint z = (arg); z;})
#define MN_PI_MAILBOX_GET_PROP_PORT(arg)	"port", __extension__ ({gint *z = (arg); z;})
#else /* __GNUC__ && !__STRICT_ANSI__ */
#define MN_PI_MAILBOX_PROP_CONNECTION_TYPE(arg)    	"connection_type",(gint )(arg)
#define MN_PI_MAILBOX_GET_PROP_CONNECTION_TYPE(arg)	"connection_type",(gint *)(arg)
#define MN_PI_MAILBOX_PROP_AUTHMECH(arg)    	"authmech",(gchar *)(arg)
#define MN_PI_MAILBOX_GET_PROP_AUTHMECH(arg)	"authmech",(gchar **)(arg)
#define MN_PI_MAILBOX_PROP_HOSTNAME(arg)    	"hostname",(gchar *)(arg)
#define MN_PI_MAILBOX_GET_PROP_HOSTNAME(arg)	"hostname",(gchar **)(arg)
#define MN_PI_MAILBOX_PROP_PORT(arg)    	"port",(gint )(arg)
#define MN_PI_MAILBOX_GET_PROP_PORT(arg)	"port",(gint *)(arg)
#endif /* __GNUC__ && !__STRICT_ANSI__ */


#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif
