Details
NMVPNPlugin
typedef struct {
	GObject parent;
} NMVPNPlugin;
 
NMVPNPluginClass
typedef struct {
	GObjectClass parent;
	/* virtual methods */
	gboolean (*connect)    (NMVPNPlugin   *plugin,
					    NMConnection  *connection,
					    GError       **err);
	gboolean (*need_secrets) (NMVPNPlugin *plugin,
	                              NMConnection *connection,
	                              char **setting_name,
	                              GError **error);
	gboolean (*disconnect) (NMVPNPlugin   *plugin,
					    GError       **err);
	/* Signals */
	void (*state_changed)  (NMVPNPlugin *plugin,
					    NMVPNServiceState state);
	void (*ip4_config)     (NMVPNPlugin *plugin,
					    GHashTable  *ip4_config);
	void (*login_banner)   (NMVPNPlugin *plugin,
					    const char *banner);
	void (*failure)        (NMVPNPlugin *plugin,
					    NMVPNPluginFailure reason);
	void (*quit)           (NMVPNPlugin *plugin);
	/* Padding for future expansion */
	void (*_reserved1) (void);
	void (*_reserved2) (void);
	void (*_reserved3) (void);
	void (*_reserved4) (void);
	void (*_reserved5) (void);
	void (*_reserved6) (void);
} NMVPNPluginClass;
 
enum NMVPNPluginError
typedef enum {
	NM_VPN_PLUGIN_ERROR_GENERAL,              /*< nick=General >*/
	NM_VPN_PLUGIN_ERROR_STARTING_IN_PROGRESS, /*< nick=StartingInProgress >*/
	NM_VPN_PLUGIN_ERROR_ALREADY_STARTED,      /*< nick=AlreadyStarted >*/
	NM_VPN_PLUGIN_ERROR_STOPPING_IN_PROGRESS, /*< nick=StoppingInProgress >*/
	NM_VPN_PLUGIN_ERROR_ALREADY_STOPPED,      /*< nick=AlreadyStopped >*/
	NM_VPN_PLUGIN_ERROR_WRONG_STATE,          /*< nick=WrongState >*/
	NM_VPN_PLUGIN_ERROR_BAD_ARGUMENTS,        /*< nick=BadArguments >*/
	NM_VPN_PLUGIN_ERROR_LAUNCH_FAILED,        /*< nick=LaunchFailed >*/
	NM_VPN_PLUGIN_ERROR_CONNECTION_INVALID,   /*< nick=ConnectionInvalid >*/
} NMVPNPluginError;
 
NM_VPN_PLUGIN_DBUS_SERVICE_NAME
#define NM_VPN_PLUGIN_DBUS_SERVICE_NAME "service-name"
 
NM_VPN_PLUGIN_STATE
#define NM_VPN_PLUGIN_STATE             "state"
 
nm_vpn_plugin_error_quark ()
GQuark              nm_vpn_plugin_error_quark           (void);
 
nm_vpn_plugin_failure ()
void                nm_vpn_plugin_failure               (NMVPNPlugin *plugin,
                                                         NMVPNPluginFailure reason);
 
nm_vpn_plugin_get_state ()
NMVPNServiceState   nm_vpn_plugin_get_state             (NMVPNPlugin *plugin);
 
nm_vpn_plugin_set_ip4_config ()
void                nm_vpn_plugin_set_ip4_config        (NMVPNPlugin *plugin,
                                                         GHashTable *ip4_config);
 
nm_vpn_plugin_set_login_banner ()
void                nm_vpn_plugin_set_login_banner      (NMVPNPlugin *plugin,
                                                         const char *banner);
 
nm_vpn_plugin_set_state ()
void                nm_vpn_plugin_set_state             (NMVPNPlugin *plugin,
                                                         NMVPNServiceState state);