#include <Y2PluginComponent.h>
Public Member Functions | |
Y2PluginComponent (bool is_server, string filename, const char *creator_name, const char *component_name, int level) | |
Y2PluginComponent (string filename, const char *creator_name, const char *component_name, const char *name_space) | |
~Y2PluginComponent () | |
string | name () const |
YCPValue | evaluate (const YCPValue &command) |
SCRAgent * | getSCRAgent () |
Y2Namespace * | import (const char *name_space) |
void | result (const YCPValue &result) |
void | setServerOptions (int argc, char **argv) |
YCPValue | doActualWork (const YCPList &arglist, Y2Component *user_interface) |
Y2Component * | component () |
Private Member Functions | |
bool | loadPlugin (const char *name_space=NULL) |
Y2ComponentCreator * | locateSym (int num) |
Private Attributes | |
const bool | is_server |
string | filename |
string | creator_name |
string | component_name |
int | argc |
char ** | argv |
int | level |
void * | handle |
Y2Component * | comp |
Y2PluginComponent::Y2PluginComponent | ( | bool | is_server, | |
string | filename, | |||
const char * | creator_name, | |||
const char * | component_name, | |||
int | level | |||
) |
References loadPlugin().
Y2PluginComponent::Y2PluginComponent | ( | string | filename, | |
const char * | creator_name, | |||
const char * | component_name, | |||
const char * | name_space | |||
) |
References loadPlugin().
Y2PluginComponent::~Y2PluginComponent | ( | ) |
Frees internal data.
References comp, handle, and Y2Component::result().
Y2Component* Y2PluginComponent::component | ( | ) | [inline] |
Return the already allocated component. It could be NULL, if there was a problem loading the component.
References comp.
Referenced by Y2CCPlugin::provideNamespace().
YCPValue Y2PluginComponent::doActualWork | ( | const YCPList & | arglist, | |
Y2Component * | user_interface | |||
) | [virtual] |
Launches the plugin with the previously set parameters.
Reimplemented from Y2Component.
References comp, Y2Component::doActualWork(), handle, and loadPlugin().
Let the server evaluate a command.
This method is only valid, if the component is a server.
Reimplemented from Y2Component.
References comp, component_name, Y2Component::evaluate(), handle, loadPlugin(), and y2error.
SCRAgent * Y2PluginComponent::getSCRAgent | ( | ) | [virtual] |
Returns the SCRAgent of the Y2Component or NULL if it doesn't have one.
Reimplemented from Y2Component.
References comp, Y2Component::getSCRAgent(), handle, and loadPlugin().
Y2Namespace * Y2PluginComponent::import | ( | const char * | name_space | ) | [virtual] |
Try to import a given namespace. This method is used for transparent handling of namespaces (YCP modules) through whole YaST. NOTICE: there is no reverse operation to import. Semantics of YCP modules is there is a single instance and it is available from the first import until the end of YaST run.
name_space | the name of the required namespace |
Reimplemented from Y2Component.
References comp, handle, Y2Component::import(), and loadPlugin().
bool Y2PluginComponent::loadPlugin | ( | const char * | name_space = NULL |
) | [private] |
Does actually load the plugin.
References argc, argv, comp, component_name, Y2ComponentCreator::create(), filename, handle, is_server, Y2ComponentCreator::isServerCreator(), locateSym(), Y2ComponentCreator::provideNamespace(), Y2Component::setServerOptions(), y2debug, y2error, and y2milestone.
Referenced by doActualWork(), evaluate(), getSCRAgent(), import(), and Y2PluginComponent().
Y2ComponentCreator * Y2PluginComponent::locateSym | ( | int | num | ) | [private] |
Tries to locate the global componentcreator via dlsym.
References creator_name, handle, SymbolTable::size(), and y2debug.
Referenced by loadPlugin().
string Y2PluginComponent::name | ( | ) | const [virtual] |
void Y2PluginComponent::result | ( | const YCPValue & | result | ) | [virtual] |
Tells this server, that the client doesn't need it's services any longer and that the exit code of the client is result.
This method is only valid, if the component is a server.
Reimplemented from Y2Component.
References comp, handle, and Y2Component::result().
void Y2PluginComponent::setServerOptions | ( | int | argc, | |
char ** | argv | |||
) | [virtual] |
Sets the commandline options of the server.
This method is only valid, if the component is a server.
Reimplemented from Y2Component.
References comp, and Y2Component::setServerOptions().
int Y2PluginComponent::argc [private] |
Stores options for a server plugin.
Referenced by loadPlugin().
char** Y2PluginComponent::argv [private] |
Stores options for a server plugin.
Referenced by loadPlugin().
Y2Component* Y2PluginComponent::comp [private] |
The created Y2Component.
Referenced by component(), doActualWork(), evaluate(), getSCRAgent(), import(), loadPlugin(), result(), setServerOptions(), and ~Y2PluginComponent().
string Y2PluginComponent::component_name [private] |
Name of the component that is implemented by the plugin.
Referenced by evaluate(), loadPlugin(), and name().
string Y2PluginComponent::creator_name [private] |
Name of the global component creator.
Referenced by locateSym().
string Y2PluginComponent::filename [private] |
The name of the plugin library.
Referenced by loadPlugin().
void* Y2PluginComponent::handle [private] |
Handle of the dynamic loaded library.
Referenced by doActualWork(), evaluate(), getSCRAgent(), import(), loadPlugin(), locateSym(), result(), and ~Y2PluginComponent().
const bool Y2PluginComponent::is_server [private] |
It this component a server or a client?
Referenced by loadPlugin().
int Y2PluginComponent::level [private] |
The component level the plugin was started in.