#include <PluginFactory.h>
Inheritance diagram for External::PluginFactory:
Public Member Functions | |
PluginFactory (String *pluginLibName) | |
virtual | ~PluginFactory (void) |
virtual void | newInstanceSelector (String *selector) |
virtual void | pluginNameSelector (String *selector) |
virtual Plugin * | newPluginInstance (void) |
virtual String * | pluginName (void) |
Static Public Member Functions | |
static Set * | plugins (void) |
static PluginFactory * | pluginWithName (String *pluginName) |
Protected Attributes | |
String * | name |
String * | new_instance_selector |
String * | plugin_name_selector |
Static Protected Attributes | |
static Set * | _plugins = nil |
static String | defaultNewInstanceSelector |
static String | defaultPluginNameSelector |
|
Definition at line 38 of file PluginFactory.cc. References defaultNewInstanceSelector, defaultPluginNameSelector, name, new_instance_selector, nil, plugin_name_selector, and plugins(). 00039 : ExternalInterface(pluginLibName) 00040 { 00041 plugins()->add(this); 00042 name = nil; 00043 new_instance_selector = &defaultNewInstanceSelector; 00044 plugin_name_selector = &defaultPluginNameSelector; 00045 }
|
|
Definition at line 47 of file PluginFactory.cc. References name, nil, and plugins().
|
|
Definition at line 61 of file PluginFactory.cc. References new_instance_selector. 00062 { 00063 new_instance_selector = selector; 00064 }
|
|
Definition at line 86 of file PluginFactory.cc. References new_instance_selector, and External::ExternalInterface::symbol(). 00087 { 00088 Plugin *(*creator)(void); 00089 00090 creator = (Plugin *(*)(void)) symbol(new_instance_selector); 00091 return(creator()); 00092 }
|
|
Definition at line 94 of file PluginFactory.cc. References name, nil, plugin_name_selector, and External::ExternalInterface::symbol(). Referenced by pluginWithName(). 00095 { 00096 String *(*function)(void); 00097 00098 if (name == nil) { 00099 function = (String *(*)(void)) symbol(plugin_name_selector); 00100 name = function(); 00101 } 00102 return name; 00103 }
|
|
Definition at line 66 of file PluginFactory.cc. References plugin_name_selector. 00067 { 00068 plugin_name_selector = selector; 00069 }
|
|
Definition at line 54 of file PluginFactory.cc. Referenced by PluginFactory(), pluginWithName(), and ~PluginFactory().
|
|
Definition at line 72 of file PluginFactory.cc. References nil, pluginName(), and plugins(). 00073 { 00074 for (Iterator *i = plugins()->iterator(); !i->finished(); i->next()) { 00075 PluginFactory *plug = (PluginFactory *) i->value(); 00076 if (plug->pluginName()->isEqual(pluginName)) { 00077 delete i; 00078 return plug; 00079 } 00080 } 00081 (new KeyNotFoundError(__PRETTY_FUNCTION__, pluginName))->raise(); 00082 return nil; // Unreachable, but keeps compiler happy 00083 }
|
|
Definition at line 34 of file PluginFactory.cc. Referenced by plugins(). |
|
Referenced by PluginFactory(). |
|
Referenced by PluginFactory(). |
|
Definition at line 40 of file PluginFactory.h. Referenced by PluginFactory(), pluginName(), and ~PluginFactory(). |
|
Definition at line 45 of file PluginFactory.h. Referenced by newInstanceSelector(), newPluginInstance(), and PluginFactory(). |
|
Definition at line 46 of file PluginFactory.h. Referenced by PluginFactory(), pluginName(), and pluginNameSelector(). |