Package com.biglybt.pifimpl.local
Class PluginInterfaceImpl
java.lang.Object
com.biglybt.pifimpl.local.PluginInterfaceImpl
- All Implemented Interfaces:
CoreComponent
,PluginInterface
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected List
protected ClassLoader
private PluginConfigImpl
private CopyOnWriteList
<PluginEventListener> private String
This is the plugin ID value we were given when we were created.private Set
<PluginListener> private PluginInitializer
private Object
private IPCInterfaceImpl
private String
private CopyOnWriteList
<PluginListener> private Logger
private static final LogIDs
private Plugin
private String
We store this value as soon as someone calls getPluginID(), meaning we will return a consistent value for the plugin's lifetime.private String
private String
private String
private Properties
private final PluginStateImpl
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
PluginInterfaceImpl
(Plugin _plugin, PluginInitializer _initialiser, Object _initialiser_key, ClassLoader _class_loader, List<File> _verified_files, String _key, Properties _props, String _pluginDir, String _plugin_id, String _plugin_version) -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
protected void
protected void
protected void
destroy()
protected void
fireInitComplete
(PluginListener listener) void
firePluginEvent
(PluginEvent event) Fire a plugin-specific event.protected void
protected void
generateEvidence
(IndentWriter writer) Returns the name of the application that the user sees - if you need to display the name of the program, you should use this method.Retrieve the Application's version as a string.Retrieve the name of the application.Get the connection manager.Get the distributed databaseGives access to the download managergetIPC()
Get the inter-plugin-communications interface for this pluginGives access to the IP filtergetLocalPluginInterface
(Class plugin_class, String id) Returns an initialised plugin instance with its own scope (e.g.Gives access to the loggerReturns the manager object for registering plugins that connect to the Mainline DHT.Get the peer messaging manager.gives access to the per-user plugin directory.Gets the platform manager that gives access to native functionalityGives access to the plugin itselfgives access to the ClassLoader used to load the pluginGives access to the plugin config interfaceGives access to the plugin installation path - note, if you want to use this path to store data files in, it would be better for you to usePluginConfig.getPluginUserFile(String)
instead.Returns an identifier used to identify this particular plugingives access to the plugin managerReturns the value of "plugin.name" if it exists in the properties file, otherwise the directory name is returned.gives access to the plugin propertiesReturns an object that provides information the current state of the plugin, and provides various mechanisms to query and control plugins and their integration with the client at a low-level.(package private) PluginStateImpl
Returns the version number of the plugin it if can be deduced from either the name of the jar file it is loaded from or the properties file.Gives access to the sharing functionalityaccess to a set of convenience routines for doing things in a quicker, although less structured, fashionGives access to the torrent managerGives access to the tracker functionalityaccess to UI extension featuresaccess to the update manager used to update plugins.access to various utility functionsprotected void
boolean
Indicates whether or not the current thread is the one responsible for running plugin initialisationvoid
void
(package private) void
void
setPluginDirectoryName
(String name) void
setPluginName
(String name) void
setPluginVersion
(String version) protected void
-
Field Details
-
LOGID
-
plugin
-
initialiser
-
initialiser_key
-
class_loader
-
listeners
-
init_complete_fired_set
-
event_listeners
-
key
-
pluginConfigKey
-
props
-
pluginDir
-
config
-
plugin_version
-
logger
-
ipc_interface
-
children
-
state
-
given_plugin_id
This is the plugin ID value we were given when we were created. We might use it, but it depends what value is the plugins properties (which will override this value). -
plugin_id_to_use
We store this value as soon as someone calls getPluginID(), meaning we will return a consistent value for the plugin's lifetime.
-
-
Constructor Details
-
PluginInterfaceImpl
protected PluginInterfaceImpl(Plugin _plugin, PluginInitializer _initialiser, Object _initialiser_key, ClassLoader _class_loader, List<File> _verified_files, String _key, Properties _props, String _pluginDir, String _plugin_id, String _plugin_version) throws PluginException - Throws:
PluginException
-
-
Method Details
-
getPlugin
Description copied from interface:PluginInterface
Gives access to the plugin itself- Specified by:
getPlugin
in interfacePluginInterface
-
getInitializerKey
-
getPluginManager
Description copied from interface:PluginInterface
gives access to the plugin manager- Specified by:
getPluginManager
in interfacePluginInterface
-
getApplicationName
Description copied from interface:PluginInterface
Returns the name of the application that the user sees - if you need to display the name of the program, you should use this method.- Specified by:
getApplicationName
in interfacePluginInterface
-
getAzureusName
Description copied from interface:PluginInterface
Retrieve the name of the application.- Specified by:
getAzureusName
in interfacePluginInterface
- Returns:
- the Application's name
-
getApplicationVersion
Description copied from interface:PluginInterface
Retrieve the Application's version as a string.- Specified by:
getApplicationVersion
in interfacePluginInterface
- Returns:
- Application's version. Typically in the following formats (regexp):
[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+_CVS
[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+_B[0-9]+
-
setPluginName
-
getPluginName
Description copied from interface:PluginInterface
Returns the value of "plugin.name" if it exists in the properties file, otherwise the directory name is returned.- Specified by:
getPluginName
in interfacePluginInterface
-
setPluginVersion
-
getPluginVersion
Description copied from interface:PluginInterface
Returns the version number of the plugin it if can be deduced from either the name of the jar file it is loaded from or the properties file. null otherwise- Specified by:
getPluginVersion
in interfacePluginInterface
- Returns:
- Version number as a string, or null
-
getPluginID
Description copied from interface:PluginInterface
Returns an identifier used to identify this particular plugin- Specified by:
getPluginID
in interfacePluginInterface
-
getPluginProperties
Description copied from interface:PluginInterface
gives access to the plugin properties- Specified by:
getPluginProperties
in interfacePluginInterface
- Returns:
- the properties from the file plugin.properties
-
getPluginDirectoryName
Description copied from interface:PluginInterface
Gives access to the plugin installation path - note, if you want to use this path to store data files in, it would be better for you to usePluginConfig.getPluginUserFile(String)
instead.- Specified by:
getPluginDirectoryName
in interfacePluginInterface
- Returns:
- the full path the plugin is installed in
-
getPerUserPluginDirectoryName
Description copied from interface:PluginInterface
gives access to the per-user plugin directory. Useful for shared plugins that need to store per-user state. Will be same as getPluginDirectoryName for per-user installed plugins directory may not yet exist- Specified by:
getPerUserPluginDirectoryName
in interfacePluginInterface
-
setPluginDirectoryName
-
getPluginconfig
Description copied from interface:PluginInterface
Gives access to the plugin config interface- Specified by:
getPluginconfig
in interfacePluginInterface
- Returns:
- the PluginConfig object associated with this plugin
-
getPluginConfigKey
-
getTracker
Description copied from interface:PluginInterface
Gives access to the tracker functionality- Specified by:
getTracker
in interfacePluginInterface
- Returns:
- The tracker
-
getDownloadManager
Description copied from interface:PluginInterface
Gives access to the download manager- Specified by:
getDownloadManager
in interfacePluginInterface
- Returns:
- An object that allows management of downloads
-
getMainlineDHTManager
Description copied from interface:PluginInterface
Returns the manager object for registering plugins that connect to the Mainline DHT.- Specified by:
getMainlineDHTManager
in interfacePluginInterface
-
getTorrentManager
Description copied from interface:PluginInterface
Gives access to the torrent manager- Specified by:
getTorrentManager
in interfacePluginInterface
- Returns:
- An object to manage torrents
-
getLogger
Description copied from interface:PluginInterface
Gives access to the logger- Specified by:
getLogger
in interfacePluginInterface
- Returns:
- The logger
-
getIPFilter
Description copied from interface:PluginInterface
Gives access to the IP filter- Specified by:
getIPFilter
in interfacePluginInterface
- Returns:
- An object that allows access to IP Filtering
-
getUtilities
Description copied from interface:PluginInterface
access to various utility functions- Specified by:
getUtilities
in interfacePluginInterface
-
getShortCuts
Description copied from interface:PluginInterface
access to a set of convenience routines for doing things in a quicker, although less structured, fashion- Specified by:
getShortCuts
in interfacePluginInterface
-
getUIManager
Description copied from interface:PluginInterface
access to UI extension features- Specified by:
getUIManager
in interfacePluginInterface
-
getUpdateManager
Description copied from interface:PluginInterface
access to the update manager used to update plugins. required for non-Azureus SF hosted plugins (SF ones are managed automatically)- Specified by:
getUpdateManager
in interfacePluginInterface
-
unloadSupport
protected void unloadSupport() -
isInitialisationThread
public boolean isInitialisationThread()Description copied from interface:PluginInterface
Indicates whether or not the current thread is the one responsible for running plugin initialisation- Specified by:
isInitialisationThread
in interfacePluginInterface
-
getClientIDManager
- Specified by:
getClientIDManager
in interfacePluginInterface
-
getConnectionManager
Description copied from interface:PluginInterface
Get the connection manager.- Specified by:
getConnectionManager
in interfacePluginInterface
- Returns:
- manager
-
getMessageManager
Description copied from interface:PluginInterface
Get the peer messaging manager.- Specified by:
getMessageManager
in interfacePluginInterface
- Returns:
- manager
-
getDistributedDatabase
Description copied from interface:PluginInterface
Get the distributed database- Specified by:
getDistributedDatabase
in interfacePluginInterface
-
getPlatformManager
Description copied from interface:PluginInterface
Gets the platform manager that gives access to native functionality- Specified by:
getPlatformManager
in interfacePluginInterface
-
initialisationComplete
protected void initialisationComplete() -
fireInitComplete
-
closedownInitiated
protected void closedownInitiated() -
closedownComplete
protected void closedownComplete() -
getPluginClassLoader
Description copied from interface:PluginInterface
gives access to the ClassLoader used to load the plugin- Specified by:
getPluginClassLoader
in interfacePluginInterface
-
getLocalPluginInterface
public PluginInterface getLocalPluginInterface(Class plugin_class, String id) throws PluginException Description copied from interface:PluginInterface
Returns an initialised plugin instance with its own scope (e.g. for config params). Designed for loading secondary plugins directly from a primary one. Note - ensure that the bundled secondary plugins do *not* contain a plugin.properties as this will cause no end of problems.- Specified by:
getLocalPluginInterface
in interfacePluginInterface
- Parameters:
plugin_class
- must implement Pluginid
- the unique id of this plugin (used to scope config params etc)- Throws:
PluginException
-
getIPC
Description copied from interface:PluginInterface
Get the inter-plugin-communications interface for this plugin- Specified by:
getIPC
in interfacePluginInterface
-
setAsFailed
void setAsFailed() -
destroy
protected void destroy() -
addListener
- Specified by:
addListener
in interfacePluginInterface
-
removeListener
- Specified by:
removeListener
in interfacePluginInterface
-
addEventListener
- Specified by:
addEventListener
in interfacePluginInterface
-
removeEventListener
- Specified by:
removeEventListener
in interfacePluginInterface
-
firePluginEvent
Description copied from interface:PluginInterface
Fire a plugin-specific event. See PluginEvent for details of type values to use- Specified by:
firePluginEvent
in interfacePluginInterface
- Parameters:
event
- plugin event
-
firePluginEventSupport
-
generateEvidence
-
getPluginState
Description copied from interface:PluginInterface
Returns an object that provides information the current state of the plugin, and provides various mechanisms to query and control plugins and their integration with the client at a low-level.- Specified by:
getPluginState
in interfacePluginInterface
-
getPluginStateImpl
PluginStateImpl getPluginStateImpl()
-