Top |
GFlags ╰── NMVpnEditorPluginCapability GInterface ├── NMVpnEditor ╰── NMVpnEditorPlugin GObject ╰── NMVpnPluginInfo
NMVpnEditor * nm_vpn_editor_plugin_get_editor (NMVpnEditorPlugin *plugin
,NMConnection *connection
,GError **error
);
NMVpnEditorPluginCapability
nm_vpn_editor_plugin_get_capabilities (NMVpnEditorPlugin *plugin
);
gsize nm_vpn_editor_plugin_get_vt (NMVpnEditorPlugin *plugin
,NMVpnEditorPluginVT *vt
,gsize vt_size
);
Returns an opaque VT function table for the plugin to extend functionality. The actual meaning of NMVpnEditorPluginVT is not defined in public API of libnm, instead it must be agreed by both the plugin and the caller. See the header-only file 'nm-vpn-editor-plugin-call.h' which defines the meaning.
plugin |
||
vt |
buffer to be filled with the VT table of the plugin. |
[out] |
vt_size |
the size of the buffer. Can be 0 to only query the size of plugin's VT. |
Since: 1.4
NMConnection * nm_vpn_editor_plugin_import (NMVpnEditorPlugin *plugin
,const char *path
,GError **error
);
plugin |
||
path |
full path to the file to attempt to read into a new NMConnection |
|
error |
on return, an error or |
a new NMConnection imported from path
, or NULL
on error or if the file at path
was not recognized by this plugin.
[transfer full]
gboolean nm_vpn_editor_plugin_export (NMVpnEditorPlugin *plugin
,const char *path
,NMConnection *connection
,GError **error
);
char * nm_vpn_editor_plugin_get_suggested_filename (NMVpnEditorPlugin *plugin
,NMConnection *connection
);
NMVpnEditorPlugin * nm_vpn_editor_plugin_load_from_file (const char *plugin_name
,const char *check_service
,int check_owner
,NMUtilsCheckFilePredicate check_file
,gpointer user_data
,GError **error
);
Load the shared library plugin_name
and create a new
NMVpnEditorPlugin instance via the NMVpnEditorPluginFactory
function.
If plugin_name
is not an absolute path name, it assumes the file
is in the plugin directory of NetworkManager. In any case, the call
will do certain checks on the file before passing it to dlopen.
A consequence for that is, that you cannot omit the ".so" suffix
as you could for nm_vpn_editor_plugin_load()
.
plugin_name |
The path or name of the shared library to load. The path must either be an absolute filename to an existing file. Alternatively, it can be the name (without path) of a library in the plugin directory of NetworkManager. |
|
check_service |
if not-null, check that the loaded plugin advertises the given service. |
|
check_owner |
if non-negative, check whether the file is owned
by UID |
|
check_file |
optional callback to validate the file prior to loading the shared library. |
[scope call] |
user_data |
user data for |
|
error |
on failure the error reason. |
Since: 1.2
NMVpnEditorPlugin * nm_vpn_editor_plugin_load (const char *plugin_name
,const char *check_service
,GError **error
);
Load the shared library plugin_name
and create a new
NMVpnEditorPlugin instance via the NMVpnEditorPluginFactory
function.
This is similar to nm_vpn_editor_plugin_load_from_file()
, but
it does no validation of the plugin name, instead passes it directly
to dlopen()
. If you have the full path to a plugin file,
nm_vpn_editor_plugin_load_from_file()
is preferred.
plugin_name |
The name of the shared library to load.
This path will be directly passed to |
|
check_service |
if not-null, check that the loaded plugin advertises the given service. |
|
error |
on failure the error reason. |
Since: 1.4
NMVpnPluginInfo *
nm_vpn_editor_plugin_get_plugin_info (NMVpnEditorPlugin *plugin
);
Since: 1.4
void nm_vpn_editor_plugin_set_plugin_info (NMVpnEditorPlugin *plugin
,NMVpnPluginInfo *plugin_info
);
Set or clear the plugin-info instance.
This takes a weak reference on plugin_info
, to avoid circular
reference as the plugin-info might also reference the editor-plugin.
plugin |
the NMVpnEditorPlugin instance |
|
plugin_info |
a NMVpnPluginInfo instance or |
[nullable] |
Since: 1.4
Flags that indicate certain capabilities of the plugin to editor programs.
typedef struct { GTypeInterface g_iface; NMVpnEditor *(*get_editor)(NMVpnEditorPlugin *plugin, NMConnection *connection, GError **error); NMVpnEditorPluginCapability (*get_capabilities)(NMVpnEditorPlugin *plugin); NMConnection *(*import_from_file)(NMVpnEditorPlugin *plugin, const char *path, GError **error); gboolean (*export_to_file)(NMVpnEditorPlugin *plugin, const char *path, NMConnection *connection, GError **error); char *(*get_suggested_filename)(NMVpnEditorPlugin *plugin, NMConnection *connection); void (*notify_plugin_info_set)(NMVpnEditorPlugin *plugin, NMVpnPluginInfo *plugin_info); const NMVpnEditorPluginVT *(*get_vt)(NMVpnEditorPlugin *plugin, gsize *out_vt_size); } NMVpnEditorPluginInterface;
Interface for VPN editor plugins.
returns an NMVpnEditor, pre-filled with values from |
||
returns a bitmask of capabilities. |
||
Try to import a connection from the specified path. On
success, return a partial NMConnection object. On error, return |
||
Export the given connection to the specified path. Return
|
||
For a given connection, return a suggested file
name. Returned value will be |
||
A callback to be called when the plugin info is set. |
||
return a virtual function table to implement further functions in
the plugin, without requiring to update libnm. Used by |
“filename”
property “filename” char *
The filename from which the info was loaded.
Can be NULL
if the instance was not loaded from
a file (i.e. the keyfile instance was passed to the
constructor).
Owner: NMVpnPluginInfo
Flags: Read / Write / Construct Only
Default value: NULL
Since: 1.2
“keyfile”
property “keyfile” GKeyFile *
Initialize the instance with a different keyfile instance. When passing a keyfile instance, the constructor will not try to read from filename.
Owner: NMVpnPluginInfo
Flags: Write / Construct Only
Since: 1.2
“name”
property “name” char *
The name of the VPN plugin.
Owner: NMVpnPluginInfo
Flags: Read
Default value: NULL
Since: 1.2
“description”
property “description” char *
Longer description of the VPN plugin.
Owner: NMVpnEditorPlugin
Flags: Read
Default value: NULL
“name”
property “name” char *
Short display name of the VPN plugin.
Owner: NMVpnEditorPlugin
Flags: Read
Default value: NULL
“changed”
signalvoid user_function (NMVpnEditor *nmvpneditor, gpointer user_data)
Flags: Run First