#include <Y2ComponentBroker.h>
Classes | |
| struct | ltstr |
Public Types | |
| enum | order_t { BUILTIN = 0, PLUGIN = 1, SCRIPT = 2, EXTERNAL_PROGRAM = 3, NETWORK = 4, MAX_ORDER = 5 } |
Static Public Member Functions | |
| static void | registerComponentCreator (const Y2ComponentCreator *creator, order_t order, bool force=false) |
| static Y2Component * | createClient (const char *name) |
| static Y2Component * | createServer (const char *name) |
| static Y2Component * | getNamespaceComponent (const char *name) |
| static bool | registerNamespaceException (const char *name_space, const char *component_name) |
Static Private Member Functions | |
| static Y2Component * | createComponent (const char *name, bool look_for_clients) |
| static void | initializeLists () |
Static Private Attributes | |
| static map< const char *, const Y2Component *, ltstr > | namespaces |
| static vector< const Y2ComponentCreator * > * | creators [MAX_ORDER] = { 0, 0, 0, 0, 0 } |
| static bool | stop_register = false |
| static map< string, string > | namespace_exceptions |
| Y2Component * Y2ComponentBroker::createClient | ( | const char * | name | ) | [static] |
Is a wrapper for createComponent, but only looks for clients.
References createComponent().
Referenced by Y2WFMComponent::CallFunction(), Y2WFMComponent::ClientExists(), getNamespaceComponent(), and main().
| Y2Component * Y2ComponentBroker::createComponent | ( | const char * | name, | |
| bool | look_for_clients | |||
| ) | [static, private] |
Tries to create or find a YaST2 component.
| spec | Specifies which component to find. | |
| look_for_clients | Set this to true if you are looking for clients. If set to false only servers are created. |
References Y2ComponentCreator::createInLevel(), creators, Y2PathSearch::currentComponentLevel(), Y2PathSearch::GENERIC, initializeLists(), Y2ComponentCreator::isClientCreator(), Y2ComponentCreator::isServerCreator(), MAX_ORDER, Y2PathSearch::numberOfComponentLevels(), Y2PathSearch::searchPath(), stop_register, and y2debug.
Referenced by createClient(), and createServer().
| Y2Component * Y2ComponentBroker::createServer | ( | const char * | name | ) | [static] |
Is a wrapper for createComponent, but only looks for servers.
References createComponent().
Referenced by getNamespaceComponent(), main(), SCRSubAgent::mount(), processfile(), and WFMSubAgent::start().
| Y2Component * Y2ComponentBroker::getNamespaceComponent | ( | const char * | name | ) | [static] |
Provide a component which implements the given namespace.
| name | the name of the requested namespace |
References createClient(), createServer(), creators, MAX_ORDER, namespace_exceptions, namespaces, Y2ComponentCreator::provideNamespace(), stop_register, y2debug, and y2warning.
Referenced by Y2WFMComponent::import(), Import::import(), and main().
| void Y2ComponentBroker::initializeLists | ( | ) | [static, private] |
Initializes creators.
References creators, and MAX_ORDER.
Referenced by createComponent(), and registerComponentCreator().
| void Y2ComponentBroker::registerComponentCreator | ( | const Y2ComponentCreator * | creator, | |
| order_t | order, | |||
| bool | force = false | |||
| ) | [static] |
Enters a component creator into the list of component creators. Is called by Y2ComponentCreator::Y2ComponentCreator.
| creator | the component creator the register | |
| order | The orders define the order how the creators are looked up. A creator with a lower order is looked up before one with a higher order. It is very important that the compiled-in components must be created with the lowest order to prevent an infinitive loop of starting external components. | |
| force | override the stop_register flag. See order_t for the possible orders. |
References creators, initializeLists(), and stop_register.
Referenced by Y2ComponentCreator::Y2ComponentCreator().
| bool Y2ComponentBroker::registerNamespaceException | ( | const char * | name_space, | |
| const char * | component_name | |||
| ) | [static] |
Register a new namespace exception to be used by getNamespaceComponent.
| name_space | the namespace to be changed | |
| component_name | the component which should provide the namespace |
References namespace_exceptions, namespaces, and y2error.
Referenced by main().
vector< const Y2ComponentCreator * > * Y2ComponentBroker::creators = { 0, 0, 0, 0, 0 } [static, private] |
Storage for the component creators.
Referenced by createComponent(), getNamespaceComponent(), initializeLists(), and registerComponentCreator().
map< string, string > Y2ComponentBroker::namespace_exceptions [static, private] |
A map containing a namespace exceptions. This will be honoured in getNamespaceComponent to give an explicit preference for a namespace to be created by a preffered component.
Referenced by getNamespaceComponent(), and registerNamespaceException().
map< const char *, const Y2Component *, Y2ComponentBroker::ltstr > Y2ComponentBroker::namespaces [static, private] |
Referenced by getNamespaceComponent(), and registerNamespaceException().
bool Y2ComponentBroker::stop_register = false [static, private] |
This flag stops the registry of components at the broker. It must be set to true before any plugin (dynamic loadable library) is loaded!
Referenced by createComponent(), getNamespaceComponent(), and registerComponentCreator().
1.5.9