yast2-core
Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Y2WFMComponent Class Reference

#include <Y2WFMComponent.h>

Inheritance diagram for Y2WFMComponent:
Y2Component

Public Member Functions

 Y2WFMComponent ()
 
 ~Y2WFMComponent ()
 
virtual string name () const
 
virtual YCPValue doActualWork (const YCPList &arglist, Y2Component *displayserver)
 
YCPInteger SCROpen (const YCPString &name, const YCPBoolean &check_version)
 
void SCRClose (const YCPInteger &handle)
 
YCPString SCRGetName (const YCPInteger &handle)
 
void SCRSetDefault (const YCPInteger &handle)
 
YCPInteger SCRGetDefault () const
 
YCPValue Args (const YCPInteger &index=YCPNull()) const
 
YCPList SetArgs (const YCPList &new_args)
 
YCPString GetLanguage () const
 
YCPString GetEncoding () const
 
YCPString SetLanguage (const YCPString &language, const YCPString &encoding=YCPNull())
 
YCPValue Read (const YCPPath &path, const YCPValue &arg)
 
YCPValue Write (const YCPPath &path, const YCPValue &arg1, const YCPValue &arg2=YCPNull())
 
YCPValue Execute (const YCPPath &path, const YCPValue &arg1)
 
YCPValue CallFunction (const YCPString &client, const YCPList &args=YCPList())
 
YCPString GetEnvironmentEncoding ()
 
YCPBoolean ClientExists (const YCPString &client)
 
virtual Y2Namespaceimport (const char *name_space)
 
void setupComponent (string client_name, string fullname, const YCPValue &script)
 
- Public Member Functions inherited from Y2Component
 Y2Component ()
 
virtual ~Y2Component ()
 
virtual YCPValue evaluate (const YCPValue &command)
 
virtual void result (const YCPValue &result)
 
virtual void setServerOptions (int argc, char **argv)
 
virtual SCRAgentgetSCRAgent ()
 
virtual bool remote () const
 

Static Public Member Functions

static Y2WFMComponentinstance ()
 

Private Types

typedef vector< WFMSubAgent * > WFMSubAgents
 

Private Member Functions

bool createDefaultSCR ()
 
WFMSubAgents::iterator find_handle (int)
 
const char * get_env_lang () const
 

Private Attributes

WFMSubAgents scrs
 
int handle_cnt
 
int default_handle
 
WFMSubAgent local
 
string modulename
 
YCPList argumentlist
 
string currentLanguage
 
string currentEncoding
 
string systemEncoding
 
string environmentEncoding
 
YCPValue script
 
string client_name
 
string fullname
 

Static Private Attributes

static Y2WFMComponentcurrent_wfm = 0
 

Member Typedef Documentation

typedef vector<WFMSubAgent*> Y2WFMComponent::WFMSubAgents
private

Type and list of SCR instances.

Constructor & Destructor Documentation

Y2WFMComponent::Y2WFMComponent ( )
Y2WFMComponent::~Y2WFMComponent ( )

Cleans up

References current_wfm, and scrs.

Member Function Documentation

YCPValue Y2WFMComponent::Args ( const YCPInteger index = YCPNull ()) const

Args Returns the arguments with which the module was called. The result is a list whose arguments are the module's arguments. If the module was called with CallFunction("my_mod", [17,true]), Args() will return [ 17, true ].

Returns
list List of arguments

References argumentlist, YCPElement::isNull(), YCPList::value(), and YCPError().

Referenced by WFMArgs(), and WFMArgs2().

YCPValue Y2WFMComponent::CallFunction ( const YCPString client,
const YCPList args = YCPList () 
)

call Executes a YCP client or a Y2 client component.

Parameters
stringname client name
listarguments list of arguments

This implies * that the called YCP code has full access to all module status in the currently running YaST.

The modulename is temporarily changed to the name of the called script or a component.

In the example, WFM looks for the file YAST2HOME/clients/inst_mouse.ycp and executes it. If the client is not found, a Y2 client component is tried to be created.

call ("inst_mouse", [true, false]) -> ....

Returns
any

References Y2ComponentBroker::createClient(), Y2Component::doActualWork(), YaST::ee, YaST::ExecutionEnvironment::filename(), YaST::ExecutionEnvironment::linenumber(), Y2Component::result(), YaST::ExecutionEnvironment::setFilename(), YaST::ExecutionEnvironment::setLinenumber(), ycp2debug, ycp2error, and ycp2milestone.

Referenced by WFMCallFunction(), and WFMCallFunction1().

YCPBoolean Y2WFMComponent::ClientExists ( const YCPString client)

ClientExists Checks whether a YCP client exists

Parameters
stringname client name

This is similar to 'call' or 'CallFunction' but client is only checked for existence and not executed. If client exists 'true' is returned, otherwise 'false'.

ClientExists ("inst_mouse") -> true ClientExists ("missing_client") -> false

Returns
boolean whether client exists

References Y2ComponentBroker::createClient(), YCPElement::isNull(), and y2error.

Referenced by WFMClientExists().

bool Y2WFMComponent::createDefaultSCR ( )
private
YCPValue Y2WFMComponent::doActualWork ( const YCPList arglist,
Y2Component displayserver 
)
virtual

Executes the YCP script.

Reimplemented from Y2Component.

References YCPList::add(), argumentlist, debugger, fullname, modulename, name(), YCPList::remove(), script, YCPList::size(), YCPList::value(), y2debug, and y2error.

Referenced by main().

YCPValue Y2WFMComponent::Execute ( const YCPPath path,
const YCPValue arg1 
)

Execute Special interface to the system agent. Not for general use.

Parameters
pathpath Path any options
Returns
any WFM::Execute (.local.foo, ... ) works like SCR::Execute (.target.foo, ...) but in the inst-sys rather than on the system being installed. It only works for paths starting with .local

References WFMSubAgent::agent(), SCRAgent::Execute(), local, WFMSubAgent::start(), and YCPError().

Referenced by WFMExecute().

Y2WFMComponent::WFMSubAgents::iterator Y2WFMComponent::find_handle ( int  handle)
private

Finds a SCR instance to a given handle.

References handle, scrs, and wfmsubagent_less().

Referenced by SCRClose(), SCRGetName(), and SCRSetDefault().

const char * Y2WFMComponent::get_env_lang ( ) const
private

Get the language from the environment.

References names.

Referenced by Y2WFMComponent().

YCPString Y2WFMComponent::GetEncoding ( ) const

GetEncoding Returns the current encoding code

Returns
string Encoding

References systemEncoding.

Referenced by WFMGetEncoding().

YCPString Y2WFMComponent::GetEnvironmentEncoding ( )

GetEnvironmentEncoding Returns the encoding code of the environment where YaST is started

Returns
string encoding code of the environment

References environmentEncoding.

Referenced by WFMGetEnvironmentEncoding().

YCPString Y2WFMComponent::GetLanguage ( ) const

GetLanguage Returns the current language code (without modifiers !)

Returns
string Language

References currentLanguage.

Referenced by WFMGetLanguage().

Y2Namespace * Y2WFMComponent::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 Bytecode::readModule(), and y2debug.

Y2WFMComponent * Y2WFMComponent::instance ( )
static
string Y2WFMComponent::name ( ) const
virtual

Returns "wfm";

Implements Y2Component.

Referenced by doActualWork(), and SCROpen().

YCPValue Y2WFMComponent::Read ( const YCPPath path,
const YCPValue arg 
)

Read Special interface to the system agent. Not for general use.

Parameters
pathpath Path any options
Returns
any WFM::Read (.local.foo, ... ) works like SCR::Read (.target.foo, ...) but in the inst-sys rather than on the system being installed. It only works for paths starting with .local

References WFMSubAgent::agent(), YCPElement::isNull(), local, SCRAgent::Read(), WFMSubAgent::start(), and YCPError().

Referenced by WFMRead().

void Y2WFMComponent::SCRClose ( const YCPInteger handle)

SCRClose Closes a scr instance.

Parameters
integerhandle SCR handle
Returns
void

References agent, default_handle, find_handle(), handle, scrs, ycperror, and ycpmilestone.

Referenced by WFMSCRClose().

YCPInteger Y2WFMComponent::SCRGetDefault ( ) const

SCRGetDefault Gets the default scr instance.

Returns
integer Default SCR handle

References default_handle.

Referenced by WFMSCRGetDefault().

YCPString Y2WFMComponent::SCRGetName ( const YCPInteger handle)

SCRGetName Get the name of a scr instance.

Parameters
integerhandle SCR handle
Returns
string Name

References find_handle(), handle, scrs, and ycpinternal.

Referenced by WFMSCRGetName().

YCPInteger Y2WFMComponent::SCROpen ( const YCPString name,
const YCPBoolean check_version 
)

SCROpen Create a new scr instance.

Creates a new scr instance. The name must be a valid y2component name (e.g. "scr", "chroot=/mnt:scr"). The component is created immediately. The parameter check_version determines whether the SuSE Version should be checked. On error a negative value is returned.

Parameters
stringname a valid y2component name
booleancheck_version determines whether the SuSE Version should be checked
Returns
integer On error a negative value is returned.

References agent, handle, handle_cnt, name(), scrs, WFMSubAgent::start(), and y2error.

Referenced by WFMSCROpen().

void Y2WFMComponent::SCRSetDefault ( const YCPInteger handle)

SCRSetDefault Sets the default scr instance.

Parameters
integerhandle SCR handle
Returns
void

References default_handle, find_handle(), scrs, and y2milestone.

Referenced by WFMSCRSetDefault().

YCPList Y2WFMComponent::SetArgs ( const YCPList new_args)

Sets WFM::Args. It useful for clients component that need to set WFM:Args builts

Returns
Previous value

References argumentlist, and Y2Component::result().

YCPString Y2WFMComponent::SetLanguage ( const YCPString language,
const YCPString encoding = YCPNull () 
)

SetLanguage Selects the language for translate()

Parameters
stringlanguage string encoding SetLanguage("de_DE", "UTF-8") -> "" SetLanguage("de_DE@euro") -> "ISO-8859-15"

The "<proposed encoding>" is the output of 'nl_langinfo (CODESET)' and only given if SetLanguage() is called with a single argument.

Returns
string proposed encoding have fun

References currentLanguage, YCPElement::isNull(), systemEncoding, y2debug, y2milestone, and y2warning.

Referenced by WFMSetLanguage(), WFMSetLanguage2(), and Y2WFMComponent().

void Y2WFMComponent::setupComponent ( string  client_name,
string  fullname,
const YCPValue script 
)

Setups this script component.

Parameters
thename of the component that is realized be the script.
scriptthe script. This component clones it, so you can destroy the script after the constructor call.

References client_name, fullname, and script.

Referenced by Y2CCWFM::createInLevel(), and main().

YCPValue Y2WFMComponent::Write ( const YCPPath path,
const YCPValue arg1,
const YCPValue arg2 = YCPNull () 
)

Write Special interface to the system agent. Not for general use.

Parameters
pathpath Path any options
Returns
boolean WFM::Write (.local.foo, ... ) works like SCR::Write (.target.foo, ...) but in the inst-sys rather than on the system being installed. It only works for paths starting with .local

References WFMSubAgent::agent(), local, WFMSubAgent::start(), SCRAgent::Write(), and YCPError().

Referenced by WFMWrite3().

Member Data Documentation

YCPList Y2WFMComponent::argumentlist
private

Arguments of the module that is realized through the wfm. The script has access to it via the builtin args(). The symbol of the term itself is the module name.

Referenced by Args(), doActualWork(), and SetArgs().

string Y2WFMComponent::client_name
private

The name of the client that is implemented by the script.

Referenced by setupComponent().

Y2WFMComponent * Y2WFMComponent::current_wfm = 0
staticprivate
string Y2WFMComponent::currentEncoding
private
string Y2WFMComponent::currentLanguage
private

Referenced by GetLanguage(), and SetLanguage().

int Y2WFMComponent::default_handle
private

Handle of default SCR instance.

Referenced by createDefaultSCR(), SCRClose(), SCRGetDefault(), and SCRSetDefault().

string Y2WFMComponent::environmentEncoding
private

environment encoding

Referenced by GetEnvironmentEncoding(), and Y2WFMComponent().

string Y2WFMComponent::fullname
private

The fullname of the script file.

Referenced by doActualWork(), and setupComponent().

int Y2WFMComponent::handle_cnt
private

Handle count.

Referenced by SCROpen().

WFMSubAgent Y2WFMComponent::local
private

The local system agent.

Referenced by Execute(), Read(), and Write().

string Y2WFMComponent::modulename
private

The name of the module that is realized by this wfm.

Referenced by doActualWork().

YCPValue Y2WFMComponent::script
private

The script that implements the component.

Referenced by doActualWork(), and setupComponent().

WFMSubAgents Y2WFMComponent::scrs
private
string Y2WFMComponent::systemEncoding
private

system encoding

Referenced by GetEncoding(), and SetLanguage().


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

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