yast2-core
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Y2PluginComponent Class Reference

#include <Y2PluginComponent.h>

Inheritance diagram for Y2PluginComponent:
Y2Component

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 ()
 
- Public Member Functions inherited from Y2Component
 Y2Component ()
 
virtual ~Y2Component ()
 
virtual bool remote () const
 

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, loadPlugin(), and locateSym().

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_spacethe 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, and y2debug.

Referenced by component(), and 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, and handle.

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 argc, argv, comp, and Y2Component::setServerOptions().

Member Data Documentation

int Y2PluginComponent::argc
private

Stores options for a server plugin.

Referenced by loadPlugin(), and setServerOptions().

char** Y2PluginComponent::argv
private

Stores options for a server plugin.

Referenced by loadPlugin(), and setServerOptions().

Y2Component* Y2PluginComponent::comp
private
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.


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

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