11 #ifndef __MatchExpression__ 12 #define __MatchExpression__ 15 #include "../../Util/Common.h" 16 #include "../Data/ISFSArray.h" 17 #include "../Data/SFSArray.h" 19 #include "LogicOperator.h" 21 #include <boost/shared_ptr.hpp> 22 #include <boost/enable_shared_from_this.hpp> 25 #pragma warning(disable:4786) // STL library: disable warning 4786; this warning is generated due to a Microsoft bug 106 class DLLImportExport
MatchExpression :
public boost::enable_shared_from_this<MatchExpression>
110 enum MatchExpressionValueType
112 MatchExpression_ValueString,
113 MatchExpression_ValueOther
119 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned char> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
120 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<short int> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
121 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned short int> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
122 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<int> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
123 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned int> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
124 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long int> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
125 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long int> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
126 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long long> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
127 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long long> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
128 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<float> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
129 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<double> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
130 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<bool> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
131 static boost::shared_ptr<MatchExpression> ChainedMatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<string> value, boost::shared_ptr<LogicOperator> logicOp, boost::shared_ptr<MatchExpression> parent);
145 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned char> varValue);
146 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<short int> varValue);
147 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned short int> varValue);
148 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<int> varValue);
149 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned int> varValue);
150 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long int> varValue);
151 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long int> varValue);
152 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long long> varValue);
153 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long long> varValue);
154 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<float> varValue);
155 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<double> varValue);
156 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<bool> varValue);
157 MatchExpression(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<string> varValue);
171 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned char> varValue);
172 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<short int> varValue);
173 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned short int> varValue);
174 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<int> varValue);
175 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned int> varValue);
176 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long int> varValue);
177 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long int> varValue);
178 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long long> varValue);
179 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long long> varValue);
180 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<float> varValue);
181 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<double> varValue);
182 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<bool> varValue);
183 MatchExpression(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<string> varValue);
200 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned char> varValue);
201 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<short int> varValue);
202 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned short int> varValue);
203 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<int> varValue);
204 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned int> varValue);
205 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long int> varValue);
206 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long int> varValue);
207 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long long> varValue);
208 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long long> varValue);
209 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<float> varValue);
210 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<double> varValue);
211 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<bool> varValue);
212 boost::shared_ptr<MatchExpression> And(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<string> varValue);
229 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned char> varValue);
230 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<short int> varValue);
231 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned short int> varValue);
232 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<int> varValue);
233 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned int> varValue);
234 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long int> varValue);
235 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long int> varValue);
236 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long long> varValue);
237 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long long> varValue);
238 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<float> varValue);
239 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<double> varValue);
240 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<bool> varValue);
241 boost::shared_ptr<MatchExpression> And(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<string> varValue);
258 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned char> varValue);
259 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<short int> varValue);
260 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned short int> varValue);
261 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<int> varValue);
262 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned int> varValue);
263 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long int> varValue);
264 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long int> varValue);
265 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long long> varValue);
266 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long long> varValue);
267 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<float> varValue);
268 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<double> varValue);
269 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<bool> varValue);
270 boost::shared_ptr<MatchExpression> Or(boost::shared_ptr<string> varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<string> varValue);
287 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned char> varValue);
288 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<short int> varValue);
289 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned short int> varValue);
290 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<int> varValue);
291 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned int> varValue);
292 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long int> varValue);
293 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long int> varValue);
294 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<long long> varValue);
295 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<unsigned long long> varValue);
296 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<float> varValue);
297 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<double> varValue);
298 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<bool> varValue);
299 boost::shared_ptr<MatchExpression> Or(
string varName, boost::shared_ptr<IMatcher> condition, boost::shared_ptr<string> varValue);
309 boost::shared_ptr<string> VarName();
317 boost::shared_ptr<IMatcher> Condition();
322 boost::shared_ptr<void> VarValue();
328 boost::shared_ptr<LogicOperator> LogicOp();
345 boost::shared_ptr<MatchExpression> Next();
353 boost::shared_ptr<MatchExpression> Rewind();
355 boost::shared_ptr<string> AsString();
357 boost::shared_ptr<string> ToString();
359 boost::shared_ptr<ISFSArray> ToSFSArray();
361 boost::shared_ptr<ISFSArray> ExpressionAsSFSArray();
366 boost::shared_ptr<LogicOperator> logicOp;
367 boost::shared_ptr<MatchExpression> parent;
368 boost::shared_ptr<MatchExpression> next;
393 ValueTypeUnsignedChar = 0,
395 ValueTypeUnsignedShortInt,
397 ValueTypeUnsignedInt,
399 ValueTypeUnsignedLongInt,
401 ValueTypeUnsignedLongLong,
408 boost::shared_ptr<string> varName;
409 boost::shared_ptr<IMatcher> condition;
410 boost::shared_ptr<void> varValue;
411 ValueTypes varValueDataType;
Match Expressions are built like "if" conditions in any common programming language.
Definition: MatchExpression.h:106
Definition: SmartFox.cpp:24