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

G_BEGIN_DECLS

/**
 * McSvcAccount:
 *
 * Dummy typedef representing any implementation of this interface.
 */
typedef struct _McSvcAccount McSvcAccount;

/**
 * McSvcAccountClass:
 *
 * The class of McSvcAccount.
 */
typedef struct _McSvcAccountClass McSvcAccountClass;

GType mc_svc_account_get_type (void);
#define MC_TYPE_SVC_ACCOUNT \
  (mc_svc_account_get_type ())
#define MC_SVC_ACCOUNT(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST((obj), MC_TYPE_SVC_ACCOUNT, McSvcAccount))
#define MC_IS_SVC_ACCOUNT(obj) \
  (G_TYPE_CHECK_INSTANCE_TYPE((obj), MC_TYPE_SVC_ACCOUNT))
#define MC_SVC_ACCOUNT_GET_CLASS(obj) \
  (G_TYPE_INSTANCE_GET_INTERFACE((obj), MC_TYPE_SVC_ACCOUNT, McSvcAccountClass))


typedef void (*mc_svc_account_remove_impl) (McSvcAccount *self,
    DBusGMethodInvocation *context);
void mc_svc_account_implement_remove (McSvcAccountClass *klass, mc_svc_account_remove_impl impl);
/**
 * mc_svc_account_return_from_remove:
 * @context: The D-Bus method invocation context
 *
 * Return successfully by calling dbus_g_method_return().
 * This inline function exists only to provide type-safety.
 */
static inline
/* this comment is to stop gtkdoc realising this is static */
void mc_svc_account_return_from_remove (DBusGMethodInvocation *context);
static inline void
mc_svc_account_return_from_remove (DBusGMethodInvocation *context)
{
  dbus_g_method_return (context);
}

typedef void (*mc_svc_account_update_parameters_impl) (McSvcAccount *self,
    GHashTable *in_Set,
    const gchar **in_Unset,
    DBusGMethodInvocation *context);
void mc_svc_account_implement_update_parameters (McSvcAccountClass *klass, mc_svc_account_update_parameters_impl impl);
/**
 * mc_svc_account_return_from_update_parameters:
 * @context: The D-Bus method invocation context
 *
 * Return successfully by calling dbus_g_method_return().
 * This inline function exists only to provide type-safety.
 */
static inline
/* this comment is to stop gtkdoc realising this is static */
void mc_svc_account_return_from_update_parameters (DBusGMethodInvocation *context);
static inline void
mc_svc_account_return_from_update_parameters (DBusGMethodInvocation *context)
{
  dbus_g_method_return (context);
}

void mc_svc_account_emit_removed (gpointer instance);
void mc_svc_account_emit_account_property_changed (gpointer instance,
    GHashTable *arg_Properties);


G_END_DECLS
