yast2-core
Public Member Functions | Static Public Member Functions | Public Attributes | Static Private Attributes | List of all members
SCRAgent Class Referenceabstract

SuSE Configuration Repository Agent. More...

#include <SCRAgent.h>

Inheritance diagram for SCRAgent:
AnyAgent DummyAgent IniAgent ModulesAgent ProcessAgent ResolverAgent ScriptingAgent StdioSCRAgent SystemAgent

Public Member Functions

 SCRAgent ()
 
virtual ~SCRAgent ()
 
virtual YCPValue Read (const YCPPath &path, const YCPValue &arg=YCPNull(), const YCPValue &opt=YCPNull())=0
 
virtual YCPBoolean Write (const YCPPath &path, const YCPValue &value, const YCPValue &arg=YCPNull())=0
 
virtual YCPList Dir (const YCPPath &path)=0
 
virtual YCPValue Execute (const YCPPath &path, const YCPValue &=YCPNull(), const YCPValue &=YCPNull())
 
virtual YCPMap Error (const YCPPath &)
 
virtual YCPBoolean RegisterAgent (const YCPPath &path, const YCPValue &)
 
virtual YCPBoolean UnregisterAgent (const YCPPath &path)
 
virtual YCPBoolean UnregisterAllAgents ()
 
virtual YCPBoolean UnmountAgent (const YCPPath &)
 
virtual YCPBoolean RegisterNewAgents ()
 
virtual YCPValue otherCommand (const YCPTerm &term)
 
void setAsCurrentSCR ()
 

Static Public Member Functions

static YCPValue readconf (const char *filename)
 
static SCRAgentinstance ()
 

Public Attributes

SCRAgentmainscragent
 

Static Private Attributes

static SCRAgentcurrent_scr = 0
 
static YCPMap unspecified_error
 returned by Error More...
 

Detailed Description

SuSE Configuration Repository Agent.

An SCRAgent is an information agent. It handles a subtree of the whole SRC data tree of the system. You can look upon it as a database that is similar to a filesystem. Data is grouped in a tree. But type of the data being stored are not files but YCP values.

Constructor & Destructor Documentation

SCRAgent::SCRAgent ( )

Initializes the base class.

References YCPMap::add(), current_scr, YCPMap::size(), and unspecified_error.

SCRAgent::~SCRAgent ( )
virtual

Cleans up. Furthermore baseclass must have a virtual destructor.

References current_scr.

Member Function Documentation

virtual YCPList SCRAgent::Dir ( const YCPPath path)
pure virtual

Get a list of all subtrees.

Implemented in AnyAgent, ProcessAgent, DummyAgent, ScriptingAgent, IniAgent, ModulesAgent, SystemAgent, StdioSCRAgent, and ResolverAgent.

Referenced by SCRDir().

virtual YCPMap SCRAgent::Error ( const YCPPath )
inlinevirtual

Get a detailed error description if a previous command failed

Reimplemented in ScriptingAgent, and StdioSCRAgent.

References unspecified_error.

Referenced by SCRError().

virtual YCPValue SCRAgent::Execute ( const YCPPath path,
const YCPValue = YCPNull(),
const YCPValue = YCPNull() 
)
inlinevirtual

Execute a command

Reimplemented in ProcessAgent, DummyAgent, ScriptingAgent, StdioSCRAgent, and SystemAgent.

References toString(), and ycp2error.

Referenced by Y2WFMComponent::Execute(), SCRExecute(), SCRExecute2(), and SCRExecute3().

SCRAgent * SCRAgent::instance ( )
static
YCPValue SCRAgent::otherCommand ( const YCPTerm term)
virtual

Execute other commands. Return 0 if the command is not defined in your Agent.

Reimplemented in AnyAgent, ProcessAgent, ScriptingAgent, DummyAgent, StdioSCRAgent, IniAgent, ModulesAgent, and ResolverAgent.

Referenced by run_agent_instance().

virtual YCPValue SCRAgent::Read ( const YCPPath path,
const YCPValue arg = YCPNull(),
const YCPValue opt = YCPNull() 
)
pure virtual

Reads data. Destroy the result after use.

Parameters
pathSpecifies what part of the subtree should be read. The path is specified relatively to Root()!

Implemented in AnyAgent, ProcessAgent, DummyAgent, ScriptingAgent, IniAgent, ModulesAgent, SystemAgent, StdioSCRAgent, and ResolverAgent.

Referenced by Y2WFMComponent::Read(), and SCRRead3().

YCPValue SCRAgent::readconf ( const char *  filename)
static

Reads the scr config file and returns the term. It skips all lines upto (including) the first starting with a ".", which is the path where the agant gets mounted (by the ScriptingAgent).

References Parser::parse(), parser, y2debug, ycp2error, and YCode::yeTerm.

Referenced by SCRSubAgent::mount(), and run_agent_instance().

virtual YCPBoolean SCRAgent::RegisterAgent ( const YCPPath path,
const YCPValue  
)
inlinevirtual

Register an agent

Reimplemented in ScriptingAgent, and StdioSCRAgent.

References toString(), and ycp2error.

Referenced by SCRRegisterAgentS(), and SCRRegisterAgentT().

virtual YCPBoolean SCRAgent::RegisterNewAgents ( )
inlinevirtual

Register new agents

Reimplemented in ScriptingAgent.

References ycp2error.

Referenced by SCRRegisterNewAgents().

void SCRAgent::setAsCurrentSCR ( )
inline

References current_scr.

Referenced by Y2WFMComponent::createDefaultSCR().

virtual YCPBoolean SCRAgent::UnmountAgent ( const YCPPath )
inlinevirtual

Unmount an agent

Reimplemented in ScriptingAgent.

Referenced by SCRUnmountAgent().

virtual YCPBoolean SCRAgent::UnregisterAgent ( const YCPPath path)
inlinevirtual

Unregister an agent

Reimplemented in ScriptingAgent, and StdioSCRAgent.

References toString(), and ycp2error.

Referenced by SCRUnregisterAgent().

virtual YCPBoolean SCRAgent::UnregisterAllAgents ( )
inlinevirtual

Unregister all agents

Reimplemented in ScriptingAgent.

References ycp2error.

Referenced by SCRUnregisterAllAgents().

virtual YCPBoolean SCRAgent::Write ( const YCPPath path,
const YCPValue value,
const YCPValue arg = YCPNull() 
)
pure virtual

Writes data. Destroy the result after use.

Implemented in AnyAgent, ProcessAgent, DummyAgent, ScriptingAgent, IniAgent, ModulesAgent, SystemAgent, StdioSCRAgent, and ResolverAgent.

Referenced by SCRWrite2(), SCRWrite3(), and Y2WFMComponent::Write().

Member Data Documentation

SCRAgent * SCRAgent::current_scr = 0
staticprivate
SCRAgent* SCRAgent::mainscragent

A pointer to the SCRAgent (which normally is the ScriptingAgent) that created this SCRAgent. It can be used to call other SCRAgents directly from C++. You must check if it is not 0.

Referenced by SCRSubAgent::mount().

YCPMap SCRAgent::unspecified_error
staticprivate

returned by Error

Referenced by Error(), and SCRAgent().


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

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