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 ();
31 
32  // used only in agent-ini/testsuite...?
33  // TODO try to eliminate it
39  ScriptingAgent (const string& file);
40 
44  ~ScriptingAgent ();
45 
51  virtual YCPValue Read (const YCPPath &path, const YCPValue &arg = YCPNull (), const YCPValue &opt = YCPNull ());
52 
56  virtual YCPBoolean Write (const YCPPath &path, const YCPValue &value,
57  const YCPValue &arg = YCPNull ());
58 
62  virtual YCPList Dir (const YCPPath &path);
63 
67  virtual YCPValue Execute (const YCPPath &path, const YCPValue &value =
68  YCPNull (), const YCPValue &arg = YCPNull ());
69 
73  virtual YCPMap Error (const YCPPath &path);
74 
83  YCPValue otherCommand (const YCPTerm &term);
84 
90  virtual YCPBoolean RegisterAgent (const YCPPath &path, const YCPValue &value);
91 
95  virtual YCPBoolean UnregisterAgent (const YCPPath &path);
96 
100  virtual YCPBoolean UnregisterAllAgents ();
101 
105  virtual YCPBoolean UnmountAgent (const YCPPath &path);
106 
116  virtual YCPBoolean RegisterNewAgents ();
117 
118 
119 private:
120 
121  // once we have to do a sweep (read all scr files because of
122  // a Dir or we were not lucky with a path patch), set this flag so
123  // that we do not unnecessarily sweep again
125 
126  // FIXME rethink the caching
128  string name;
129  time_t last_changed;
130  };
131 
135  list<RegistrationDir> registration_dirs;
136 
140  void InitRegDirs ();
141 
146  typedef vector<SCRSubAgent*> SubAgents;
148 
149 
154  YCPValue MountAgent (const YCPPath &path);
155 
160 
165 
169  void Sweep ();
170 
175  void tryRegister (const YCPPath &path);
176 
181  SubAgents::const_iterator findSubagent (const YCPPath &path);
182 
188  SubAgents::const_iterator findAndRegisterSubagent (const YCPPath &path);
189 
193  YCPList dirSubagents (const YCPPath &path);
194 
205  YCPValue executeSubagentCommand (const char *command,
206  const YCPPath &path,
207  const YCPValue &arg = YCPNull (),
208  const YCPValue &optpar = YCPNull ());
209 
215  SubAgents::iterator findByPath (const YCPPath &path);
216 
222  void parseConfigFiles (const string &directory);
223 
228  void parseSingleConfigFile (const string &file);
229 
230 };
231 
232 
233 #endif // ScriptingAgent_h
YCPValue otherCommand(const YCPTerm &term)
Definition: ScriptingAgent.cc:266
time_t last_changed
st_mtime of the dir
Definition: ScriptingAgent.h:129
virtual YCPValue Execute(const YCPPath &path, const YCPValue &value=YCPNull(), const YCPValue &arg=YCPNull())
Definition: ScriptingAgent.cc:236
ScriptingAgent()
Definition: ScriptingAgent.cc:28
YCPValue executeSubagentCommand(const char *command, const YCPPath &path, const YCPValue &arg=YCPNull(), const YCPValue &optpar=YCPNull())
Definition: ScriptingAgent.cc:577
YCPValue MountAllAgents()
Definition: ScriptingAgent.cc:384
SubAgents::const_iterator findAndRegisterSubagent(const YCPPath &path)
Definition: ScriptingAgent.cc:551
void InitRegDirs()
Definition: ScriptingAgent.cc:48
virtual YCPBoolean RegisterAgent(const YCPPath &path, const YCPValue &value)
Definition: ScriptingAgent.cc:311
virtual YCPBoolean UnmountAgent(const YCPPath &path)
Definition: ScriptingAgent.cc:401
Definition: ScriptingAgent.h:22
YCPValue UnmountAllAgents()
Definition: ScriptingAgent.cc:414
virtual YCPValue Read(const YCPPath &path, const YCPValue &arg=YCPNull(), const YCPValue &opt=YCPNull())
Definition: ScriptingAgent.cc:185
Definition: ScriptingAgent.h:127
vector< SCRSubAgent * > SubAgents
Definition: ScriptingAgent.h:146
YCPValue MountAgent(const YCPPath &path)
Definition: ScriptingAgent.cc:370
string name
Definition: ScriptingAgent.h:128
virtual YCPBoolean UnregisterAgent(const YCPPath &path)
Definition: ScriptingAgent.cc:334
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:84
~ScriptingAgent()
Definition: ScriptingAgent.cc:72
SuSE Configuration Repository Agent.
Definition: SCRAgent.h:38
SubAgents::const_iterator findSubagent(const YCPPath &path)
Definition: ScriptingAgent.cc:530
void tryRegister(const YCPPath &path)
Definition: ScriptingAgent.cc:465
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:621
void Sweep()
Definition: ScriptingAgent.cc:426
virtual YCPBoolean Write(const YCPPath &path, const YCPValue &value, const YCPValue &arg=YCPNull())
Definition: ScriptingAgent.cc:199
YCPList dirSubagents(const YCPPath &path)
Definition: ScriptingAgent.cc:497
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:218
list< RegistrationDir > registration_dirs
Definition: ScriptingAgent.h:135
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:124
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
SubAgents agents
Definition: ScriptingAgent.h:147
virtual YCPBoolean UnregisterAllAgents()
Definition: ScriptingAgent.cc:353
virtual YCPBoolean RegisterNewAgents()
Definition: ScriptingAgent.cc:442
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:249
void parseSingleConfigFile(const string &file)
Definition: ScriptingAgent.cc:129
Definition: YCPElement.h:125

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