#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(). |
1.4.2