yast2-core
AnyAgent.h
Go to the documentation of this file.
1 
10 // -*- c++ -*-
11 
12 #ifndef AnyAgent_h
13 #define AnyAgent_h
14 
15 
16 #include <stdio.h>
17 #include <sys/types.h>
18 #include <stack>
19 #include <scr/SCRAgent.h>
20 
21 using std::stack;
22 
23 
27 class AnyAgent : public SCRAgent
28 {
35 
42  time_t mtime;
44  bool cchanged;
46  bool achanged;
47 
51  bool mReadOnly;
52 
57 
62 
66  string mComment;
67  bool isFillup;
68 
73 
78 
83 
87  stack <string> tupleName;
88  stack <YCPValue> tupleValue;
90 
91 public:
92 
96  AnyAgent ();
97 
101  ~AnyAgent ();
102 
108  YCPValue Read (const YCPPath & path, const YCPValue & arg = YCPNull (), const YCPValue & opt = YCPNull ());
109 
113  YCPBoolean Write (const YCPPath & path, const YCPValue & value,
114  const YCPValue & arg = YCPNull ());
115 
119  YCPList Dir (const YCPPath & path);
120 
124  YCPValue otherCommand (const YCPTerm & term);
125 
126 private:
127 
128  YCPValue readValueByPath (const YCPValue & value, const YCPPath & path);
129  YCPValue writeValueByPath (const YCPValue & current, const YCPPath & path,
130  const YCPValue & value);
131 
132  YCPValue findSyntax (const YCPValue & syntax, const YCPPath & path);
133 
134  const char * get_line (FILE * fp);
135 
136  //
137  // Basic types (AnyAgentBasic)
138  //
139 
140  YCPValue parseIp4Number (char const *&lptr, bool optional);
141  const string unparseIp4Number (const YCPValue & value);
142 
143  YCPValue parseBoolean (char const *&lptr, bool optional);
144  const string unparseBoolean (const YCPValue & value);
145 
146  YCPValue parseNumber (char const *&lptr, bool optional);
147  const string unparseNumber (const YCPValue & value);
148 
149  YCPValue parseHexval (char const *&lptr, bool optional);
150  const string unparseHexval (const YCPValue & value);
151 
152  YCPValue parseString (char const *&lptr, const char *set, const char *stripped,
153  bool optional);
154  const string unparseString (const YCPValue & syntax, const YCPValue & stripped,
155  const YCPValue & value);
156 
157  YCPValue parseFloat (char const *&lptr, bool optional);
158  const string unparseFloat (const YCPValue & value);
159 
160  YCPValue parseHostname (char const *&lptr, bool optional);
161  const string unparseHostname (const YCPValue & value);
162 
163  YCPValue parseUsername (char const *&lptr, bool optional);
164  const string unparseUsername (const YCPValue & value);
165 
166  YCPValue parseVerbose (char const *&lptr, const char *match, bool optional);
167  const string unparseVerbose (const YCPValue & value);
168 
169  YCPValue parseSeparator (char const *&lptr, const char *match, bool optional);
170  const string unparseSeparator (const YCPValue & match);
171 
172  const char * getLine (void);
173  const string putLine (const string s);
174 
175  //
176  // Complex types (AnyAgentComplex)
177  //
178 
179  YCPValue parseChoice (char const *&line, const YCPList & syntax, bool optional);
180  const string unparseChoice (const YCPList & syntax, const YCPValue & value);
181 
182  YCPValue parseSequence (char const *&line, const YCPList & syntax, bool optional);
183  const string unparseSequence (const YCPList & syntax, const YCPValue & value);
184 
185  YCPValue parseList (char const *&line, const YCPList & syntax, bool optional);
186  const string unparseList (const YCPList & syntax, const YCPValue & value);
187 
188  YCPValue parseTuple (char const *&line, const YCPList & syntax, bool optional);
189  const string unparseTuple (const YCPList & syntax, const YCPValue & value);
190 
191  YCPValue parseData (char const *&line, const YCPValue & syntax, bool optional);
192  const string unparseData (const YCPValue & syntax, const YCPValue & value);
193 
194  YCPValue validateCache (const YCPList & data, const YCPValue & arg = YCPNull ());
195  YCPValue readFile (const YCPValue & arg);
196  const string writeFile (const YCPValue & arg);
197 
198  string evalArg (const YCPValue & arg);
199 
200  int lineNumber () const;
201 
202 };
203 
204 
205 #endif // AnyAgent_h
const string unparseBoolean(const YCPValue &value)
Definition: AnyAgentBasic.cc:115
stack< YCPValue > tupleValue
Definition: AnyAgent.h:88
YCPValue validateCache(const YCPList &data, const YCPValue &arg=YCPNull())
Definition: AnyAgent.cc:539
bool achanged
Definition: AnyAgent.h:46
YCPValue parseList(char const *&line, const YCPList &syntax, bool optional)
Definition: AnyAgentComplex.cc:220
YCPValue parseIp4Number(char const *&lptr, bool optional)
Definition: AnyAgentBasic.cc:32
const string unparseList(const YCPList &syntax, const YCPValue &value)
Definition: AnyAgentComplex.cc:254
YCPValue findSyntax(const YCPValue &syntax, const YCPPath &path)
Definition: AnyAgent.cc:962
YCPValue readFile(const YCPValue &arg)
Definition: AnyAgent.cc:709
YCPValue parseBoolean(char const *&lptr, bool optional)
Definition: AnyAgentBasic.cc:93
AnyAgent()
Definition: AnyAgent.cc:103
SCR Agent for access to any describeable file.
Definition: AnyAgent.h:27
const string unparseData(const YCPValue &syntax, const YCPValue &value)
Definition: AnyAgentComplex.cc:714
bool isFillup
Definition: AnyAgent.h:67
YCPValue parseData(char const *&line, const YCPValue &syntax, bool optional)
Definition: AnyAgentComplex.cc:430
bool cchanged
Definition: AnyAgent.h:44
Definition: AnyAgent.h:56
const string unparseUsername(const YCPValue &value)
Definition: AnyAgentBasic.cc:446
YCPValue parseString(char const *&lptr, const char *set, const char *stripped, bool optional)
Definition: AnyAgentBasic.cc:229
YCPValue cache
Definition: AnyAgent.h:43
const string unparseIp4Number(const YCPValue &value)
Definition: AnyAgentBasic.cc:74
YCPValue mSyntax
Definition: AnyAgent.h:72
YCPValue parseSequence(char const *&line, const YCPList &syntax, bool optional)
Definition: AnyAgentComplex.cc:177
enum AnyAgent::@0 mType
stack< string > tupleName
Definition: AnyAgent.h:87
Definition: AnyAgent.h:56
~AnyAgent()
Definition: AnyAgent.cc:118
const char * get_line(FILE *fp)
Definition: AnyAgent.cc:513
YCPBoolean Write(const YCPPath &path, const YCPValue &value, const YCPValue &arg=YCPNull())
Definition: AnyAgent.cc:337
bool mReadOnly
Definition: AnyAgent.h:51
time_t mtime
Definition: AnyAgent.h:42
Definition: AnyAgent.h:56
YCPValue parseNumber(char const *&lptr, bool optional)
Definition: AnyAgentBasic.cc:129
SuSE Configuration Repository Agent.
Definition: SCRAgent.h:37
const string unparseSequence(const YCPList &syntax, const YCPValue &value)
Definition: AnyAgentComplex.cc:210
const string putLine(const string s)
Definition: AnyAgentComplex.cc:96
const string unparseNumber(const YCPValue &value)
Definition: AnyAgentBasic.cc:151
YCPValue parseSeparator(char const *&lptr, const char *match, bool optional)
Definition: AnyAgentBasic.cc:506
const string unparseHostname(const YCPValue &value)
Definition: AnyAgentBasic.cc:394
YCPValue parseVerbose(char const *&lptr, const char *match, bool optional)
Definition: AnyAgentBasic.cc:467
const string unparseTuple(const YCPList &syntax, const YCPValue &value)
Definition: AnyAgentComplex.cc:375
YCPValue parseTuple(char const *&line, const YCPList &syntax, bool optional)
Definition: AnyAgentComplex.cc:319
string mComment
Definition: AnyAgent.h:66
int lineNumber() const
Definition: AnyAgentComplex.cc:39
YCPValue parseUsername(char const *&lptr, bool optional)
Definition: AnyAgentBasic.cc:419
YCPValue mName
Definition: AnyAgent.h:61
bool tupleContinue
Definition: AnyAgent.h:89
YCPValue parseFloat(char const *&lptr, bool optional)
Definition: AnyAgentBasic.cc:309
const string unparseChoice(const YCPList &syntax, const YCPValue &value)
Definition: AnyAgentComplex.cc:167
const string unparseHexval(const YCPValue &value)
Definition: AnyAgentBasic.cc:211
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
bool description_read
Definition: AnyAgent.h:34
const string unparseString(const YCPValue &syntax, const YCPValue &stripped, const YCPValue &value)
Definition: AnyAgentBasic.cc:271
YCPValue parseHexval(char const *&lptr, bool optional)
Definition: AnyAgentBasic.cc:169
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
const string unparseSeparator(const YCPValue &match)
Definition: AnyAgentBasic.cc:522
YCPValue readValueByPath(const YCPValue &value, const YCPPath &path)
Definition: AnyAgent.cc:821
YCPValue writeValueByPath(const YCPValue &current, const YCPPath &path, const YCPValue &value)
Definition: AnyAgent.cc:892
const string writeFile(const YCPValue &arg)
Definition: AnyAgent.cc:800
YCPValue Read(const YCPPath &path, const YCPValue &arg=YCPNull(), const YCPValue &opt=YCPNull())
Definition: AnyAgent.cc:259
const char * getLine(void)
Definition: AnyAgentComplex.cc:51
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
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
YCPValue otherCommand(const YCPTerm &term)
Definition: AnyAgent.cc:124
int line_number
Definition: AnyAgent.h:82
YCPValue parseChoice(char const *&line, const YCPList &syntax, bool optional)
Definition: AnyAgentComplex.cc:106
YCPList alldata
Definition: AnyAgent.h:45
Definition: AnyAgent.h:56
string evalArg(const YCPValue &arg)
Definition: AnyAgent.cc:582
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
YCPList Dir(const YCPPath &path)
Definition: AnyAgent.cc:498
const string unparseVerbose(const YCPValue &value)
Definition: AnyAgentBasic.cc:489
Definition: YCPElement.h:125
YCPValue parseHostname(char const *&lptr, bool optional)
Definition: AnyAgentBasic.cc:351
YCPValue mHeader
Definition: AnyAgent.h:77
const string unparseFloat(const YCPValue &value)
Definition: AnyAgentBasic.cc:334

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