yast2-core
ScriptingAgent.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 
3 /*
4  * Authors: Arvin Schnell <arvin@suse.de>
5  * Klaus Kaempf <kkaempf@suse.de>
6  * Stanislav Visnovsky <visnov@suse.cz>
7  * Maintainer: Arvin Schnell <arvin@suse.de>
8  */
9 
10 
11 #ifndef ScriptingAgent_h
12 #define ScriptingAgent_h
13 
14 #include <time.h>
15 #include <y2/Y2Component.h>
16 #include <scr/SCRAgent.h>
17 #include "SCRSubAgent.h"
18 
22 class ScriptingAgent : public SCRAgent
23 {
24 
25 public:
26 
30  ScriptingAgent (const string& root = "/");
31 
32  // used only in agent-ini/testsuite...?
33  // TODO try to eliminate it
39  ScriptingAgent (const string& root, const string& file);
40 
44  ~ScriptingAgent ();
45 
50  virtual const char* root() const;
51 
57  virtual YCPValue Read (const YCPPath &path, const YCPValue &arg = YCPNull (), const YCPValue &opt = YCPNull ());
58 
62  virtual YCPBoolean Write (const YCPPath &path, const YCPValue &value,
63  const YCPValue &arg = YCPNull ());
64 
68  virtual YCPList Dir (const YCPPath &path);
69 
73  virtual YCPValue Execute (const YCPPath &path, const YCPValue &value =
74  YCPNull (), const YCPValue &arg = YCPNull ());
75 
79  virtual YCPMap Error (const YCPPath &path);
80 
89  YCPValue otherCommand (const YCPTerm &term);
90 
96  virtual YCPBoolean RegisterAgent (const YCPPath &path, const YCPValue &value);
97 
101  virtual YCPBoolean UnregisterAgent (const YCPPath &path);
102 
106  virtual YCPBoolean UnregisterAllAgents ();
107 
111  virtual YCPBoolean UnmountAgent (const YCPPath &path);
112 
122  virtual YCPBoolean RegisterNewAgents ();
123 
124 
125 private:
126 
127  // once we have to do a sweep (read all scr files because of
128  // a Dir or we were not lucky with a path patch), set this flag so
129  // that we do not unnecessarily sweep again
131 
132  string root_path;
133 
134  // FIXME rethink the caching
136  string name;
137  time_t last_changed;
138  };
139 
143  list<RegistrationDir> registration_dirs;
144 
148  void InitRegDirs ();
149 
154  typedef vector<SCRSubAgent*> SubAgents;
155  SubAgents agents;
156 
157 
162  YCPValue MountAgent (const YCPPath &path);
163 
168 
173 
177  void Sweep ();
178 
183  void tryRegister (const YCPPath &path);
184 
189  SubAgents::const_iterator findSubagent (const YCPPath &path);
190 
196  SubAgents::const_iterator findAndRegisterSubagent (const YCPPath &path);
197 
201  YCPList dirSubagents (const YCPPath &path);
202 
213  YCPValue executeSubagentCommand (const char *command,
214  const YCPPath &path,
215  const YCPValue &arg = YCPNull (),
216  const YCPValue &optpar = YCPNull ());
217 
223  SubAgents::iterator findByPath (const YCPPath &path);
224 
230  void parseConfigFiles (const string &directory);
231 
236  void parseSingleConfigFile (const string &file);
237 
238 };
239 
240 
241 #endif // ScriptingAgent_h
YCPValue otherCommand(const YCPTerm &term)
Definition: ScriptingAgent.cc:273
time_t last_changed
st_mtime of the dir
Definition: ScriptingAgent.h:137
virtual YCPValue Execute(const YCPPath &path, const YCPValue &value=YCPNull(), const YCPValue &arg=YCPNull())
Definition: ScriptingAgent.cc:243
YCPValue executeSubagentCommand(const char *command, const YCPPath &path, const YCPValue &arg=YCPNull(), const YCPValue &optpar=YCPNull())
Definition: ScriptingAgent.cc:584
YCPValue MountAllAgents()
Definition: ScriptingAgent.cc:391
SubAgents::const_iterator findAndRegisterSubagent(const YCPPath &path)
Definition: ScriptingAgent.cc:558
void InitRegDirs()
Definition: ScriptingAgent.cc:50
virtual YCPBoolean RegisterAgent(const YCPPath &path, const YCPValue &value)
Definition: ScriptingAgent.cc:318
virtual YCPBoolean UnmountAgent(const YCPPath &path)
Definition: ScriptingAgent.cc:408
Definition: ScriptingAgent.h:22
string root_path
Definition: ScriptingAgent.h:132
YCPValue UnmountAllAgents()
Definition: ScriptingAgent.cc:421
virtual YCPValue Read(const YCPPath &path, const YCPValue &arg=YCPNull(), const YCPValue &opt=YCPNull())
Definition: ScriptingAgent.cc:192
Definition: ScriptingAgent.h:135
vector< SCRSubAgent * > SubAgents
Definition: ScriptingAgent.h:154
YCPValue MountAgent(const YCPPath &path)
Definition: ScriptingAgent.cc:377
string name
Definition: ScriptingAgent.h:136
virtual YCPBoolean UnregisterAgent(const YCPPath &path)
Definition: ScriptingAgent.cc:341
Wrapper for YCPMapRep This class realizes an automatic memory management via YCPElement. Access the functionality of YCPMapRep with the arrow operator. See YCPMapRep.
Definition: YCPMap.h:184
void parseConfigFiles(const string &directory)
Definition: ScriptingAgent.cc:91
~ScriptingAgent()
Definition: ScriptingAgent.cc:74
SuSE Configuration Repository Agent.
Definition: SCRAgent.h:37
SubAgents::const_iterator findSubagent(const YCPPath &path)
Definition: ScriptingAgent.cc:537
void tryRegister(const YCPPath &path)
Definition: ScriptingAgent.cc:472
virtual const char * root() const
Definition: ScriptingAgent.cc:79
Wrapper for YCPListRep This class realizes an automatic memory management via YCPElement. Access the functionality of YCPListRep with the arrow operator. See YCPListRep.
Definition: YCPList.h:236
SubAgents::iterator findByPath(const YCPPath &path)
Definition: ScriptingAgent.cc:628
void Sweep()
Definition: ScriptingAgent.cc:433
virtual YCPBoolean Write(const YCPPath &path, const YCPValue &value, const YCPValue &arg=YCPNull())
Definition: ScriptingAgent.cc:206
YCPList dirSubagents(const YCPPath &path)
Definition: ScriptingAgent.cc:504
Wrapper for YCPTermRep This class realizes an automatic memory management via YCPElement. Access the functionality of YCPTermRep with the arrow operator. See YCPTermRep.
Definition: YCPTerm.h:177
virtual YCPList Dir(const YCPPath &path)
Definition: ScriptingAgent.cc:225
list< RegistrationDir > registration_dirs
Definition: ScriptingAgent.h:143
Wrapper for YCPValueRep This class realizes an automatic memory management via YCPElement. Access the functionality of YCPValueRep with the arrow operator. See YCPValueRep.
Definition: YCPValue.h:275
bool done_sweep
Definition: ScriptingAgent.h:130
Wrapper for YCPPathRep This class realizes an automatic memory management via YCPElement. Access the functionality of YCPPathRep with the arrow operator. See YCPPathRep.
Definition: YCPPath.h:175
ScriptingAgent(const string &root="/")
Definition: ScriptingAgent.cc:28
SubAgents agents
Definition: ScriptingAgent.h:155
virtual YCPBoolean UnregisterAllAgents()
Definition: ScriptingAgent.cc:360
virtual YCPBoolean RegisterNewAgents()
Definition: ScriptingAgent.cc:449
Wrapper for YCPBooleanRep This class realizes an automatic memory management via YCPElement. Access the functionality of YCPBooleanRep with the arrow operator. See YCPBooleanRep.
Definition: YCPBoolean.h:93
virtual YCPMap Error(const YCPPath &path)
Definition: ScriptingAgent.cc:256
void parseSingleConfigFile(const string &file)
Definition: ScriptingAgent.cc:136
Definition: YCPElement.h:125

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