(v13) Event based plugin startup
This page applies to Harlequin v13.1r0 and later; and to Harlequin MultiRIP but not Harlequin Core
The following sections describe how plugins are loaded.
The RIP reserves the right to load and unload event-based plugins at its own convenience. Your plugins could be initialized and shut down more than once in a single RIP session. If you use threads or processes, you must ensure that they are properly shut down and restarted.
The plugin can set a flag to ensure that once loaded, it remains in memory for the rest of the RIP session. It is worth setting this flag if the plugin must set up static data and needs to maintain it in memory. See (v13) D_GET_FLAGS .
Event based plugin selectors
This section provides a topicābased index to the event-based plugin selectors. Use the topic headings to find a selector related to the area of plugin implementation that interests you, then look it up on the page given to see what it should do and whether you need to implement it in your plugin.
Plugin startup (event based plugins)
The following is the correct sequence for an event-based plugin:
- (v13) D_SELECTOR_SUPPORT (event based plugins) query on (v13) D_GET_IDENTITY (event based plugins)
- (v13) D_GET_IDENTITY (event based plugins)
- (v13) D_GEN_BOOT (event based plugins)
- (v13) D_PLUGIN_INITIALISE (event based plugins)
- (v13) D_LIB_SELECT (event based plugins - startup)
- (v13) D_SECURITY (event based plugins)
- (v13) D_SELECTOR_SUPPORT (event based plugins) query on (v13) D_EVT_GETHANDLERS (event based plugins)
- (v13) D_EVT_GETHANDLERS (event based plugins) .
Note: Module selection occurs as part of the RIP startup sequence.
Event handler registration
Plugin shutdown (event based plugins)
Plugin startup selectors (event based plugins)
This section describes plugin startup selectors.