Modest plugin system
API and ABI
API
The API is available at the include directory for modest plugin. If the prefix for modest is /usr it will be at /usr/include/modest-plugin-1.0/. The most interesting thing there is the ModestProtocol framework. To support a new protocol (transport or store), you have to register a new instance of ModestAccountProtocol in the ModestProtocolRegistry. There you'll find methods to implement specific UI for setting them up.
ABI
As it's a new born plugin system, for now, we cannot provide an ABI contract. It will be changing as new features are requested for the plugin system. Once it's been around for a while, we'll estabilise the public API and provide the expected ABI contract.
Meanwhile, plugins should be kept in sync with modest.
How to build a new module
Linking
A module should be built using the paths obtained from pkg-config. The name of the pkg-config module is modest-plugin-1.0. As usual, you can check and fetch the specific deployment information in configure.ac:
PKG_CHECK_MODULES(MODESTPLUGIN,modest-plugin-1.0)
Module format
The plugin should be a libnameofplugin.so file. You should provide also an information file with extension .modest-mail-plugin and this format:
[Modest Mail Plugin]
Module=nameofplugin
IAge=2
Name=Plugin name
Description=Description of the plugin
Authors=John Doe <jdoe@address.com>
Copyright=Copyright <C2><A9>2008 John Doe
Website=http://modest.garage.maemo.org
In fact only the Module field is used currently. Modest will go through all the .modest-mail-plugin files and load their modules.
Fetching mail plugins module directory
Main plugins will be fetched in /usr/lib/modest/mail-plugins with the default setup. Anyway, you can fetch your specific modest plugin installation path using pkg-config:
pkg-config --variable=plugindir modest-plugin-1.0
In configure.ac you can do this to export the plugindir to the Makefile files:
MODESTPLUGIN_PLUGINDIR=`pkg-config modest-plugin-1.0 --variable=plugindir`
AC_SUBST(MODESTPLUGIN_PLUGINDIR)
Implementation notes
Implementation notes for plugin system
(last edited April 28, 2009) - Read Only
[info]
[diff])
FindPage by browsing or searching
5 best incoming links:
FrontPage (7), RecentChanges (5)
5 best outgoing links:
PluginAPIImplementationNotes (4)
5 most popular nearby:
FrontPage (4620), RecentChanges (712), PluginAPIImplementationNotes (476)
|