Y2PluginComponent Class Reference

#include <Y2PluginComponent.h>

Inheritance diagram for Y2PluginComponent:

Y2Component

List of all members.

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)
SCRAgentgetSCRAgent ()
Y2Namespaceimport (const char *name_space)
void result (const YCPValue &result)
void setServerOptions (int argc, char **argv)
YCPValue doActualWork (const YCPList &arglist, Y2Component *user_interface)
Y2Componentcomponent ()

Private Member Functions

bool loadPlugin (const char *name_space=NULL)
Y2ComponentCreatorlocateSym (int num)

Private Attributes

const bool is_server
string filename
string creator_name
string component_name
int argc
char ** argv
int level
void * handle
Y2Componentcomp


Constructor & Destructor Documentation

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


Member Function Documentation

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

YCPValue Y2PluginComponent::evaluate ( const YCPValue command  )  [virtual]

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.

Parameters:
name_space the name of the required namespace
Returns:
on errors, NULL should be returned. The error reporting must be done by the component itself (typically using y2log). On success, the method should return a proper instance of the imported namespace ready to be used. The returned instance is still owned by the component, any other part of YaST will try to free it. Thus, it's possible to share the instance.

Reimplemented from Y2Component.

References comp, handle, Y2Component::import(), and loadPlugin().

bool Y2PluginComponent::loadPlugin ( const char *  name_space = NULL  )  [private]

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]

Returns the name of this component.

Implements Y2Component.

References component_name.

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


Member Data Documentation

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

Name of the component that is implemented by the plugin.

Referenced by evaluate(), loadPlugin(), and name().

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.


The documentation for this class was generated from the following files:

Generated on a sunny day for yast2-core by doxygen 1.5.9