list<SResolvedField>
TObs;
325m_CaseSensitive(
false),
Query execution function for assignment operator.
Query execution proxy class to add common operations and avoid modification of CQueryFunctionBase.
Class implements functions calls in the do section of macro.
Query execution function for run-time variables.
Query execution function for simple atomic values.
This class applies an operation to each node of the query tree to do necessary initialization (constr...
Subclass of the IQueryParseUserObject which is held as the user-defined object in each CQueryParseNod...
Subclass of CQueryExec that adds: 1) Macro identifiers resolution 2) Where clause evaluation.
Query execution environment holds the function registry and the execution context.
Base class for evaluation functions.
Query tree and associated utility methods.
definition of a Culling tree
class IQueryMacroUserObject
Interface class for resolving entities during function execution.
virtual void Reset()
Reset user object (for reuse without reallocation)
virtual bool ResolveIdentifier(const string &ident, string &value)
bool x_Validate(Uint4 number, CMQueryNodeValue::EType type1, CMQueryNodeValue::EType type2)
Checks the number of arguments, also their type should be one of the given types.
void SetString(const string &data)
Set/get underlying data type.
ETreeTraverseCode operator()(CTreeNode< CQueryParseNode > &tr, int delta)
Operator builds node values for each CQueryParseNode.
virtual void Evaluate(CQueryParseTree::TNode &node)
Function throws an exception about not implmented operation for the node.
bool m_Boolean
Type of result is boolean.
IResolver * m_Resolver
Variables resolver.
const vector< string > & GetStrings() const
virtual bool ResolveIdentifier(const string &ident, bool &value)
Stubs for virtual functions.
virtual CQueryParseTree * GetAssignmentWhereClause(int index) const =0
virtual void AddTmpRTVarObject(const string &name, CObjectInfo &oi)=0
list< SResolvedField > TObs
string m_String
Data String data, if data came from a string or data field in the tree.
virtual bool ResolveIdentifier(const string &ident, Int8 &value)
virtual ~CMQueryFunctionOps()
void SetDouble(double data)
void AssignFromObjectInfo(const CObjectInfo &objinfo)
Assigns data from objinfo. It is used when storing evaluation result.
virtual CRef< CMQueryNodeValue > GetOrCreateRTVar(const string &name)=0
void Dereference()
If it is a reference it is resolved to the first non reference type in the hierarchy.
const TObs & GetObjects() const
bool m_CaseSensitive
Case sensitive flag for string comparisons.
SResolvedField(CObjectInfo parent, CObjectInfo field)
virtual void Evaluate(CQueryParseTree::TNode &node)
Calculates node values for constants and resolved identifiers.
void SetDataType(EType dt)
bool m_Result
Boolean result of calculation.
bool IsCaseSensitive() const
Get function to access case sensitivity flag.
void x_InitReferences(CQueryParseTree::TNode &node)
Ininializes protected members to be used in derived classes.
const string & GetString() const
EType GetDataType() const
virtual void Evaluate(CQueryParseTree::TNode &node)
Function implements functions calls in the do section of macro.
TObs m_Obs
List of objects.
CRef< CMQueryNodeValue > x_GetUserObject(CQueryParseTree::TNode &node)
Gets user node value from CQueryParseTree node.
bool IsSimpleType() const
IResolver * GetResolver() const
EType m_DataType
Node value data type.
CRef< CMQueryNodeValue > m_Ref
Reference to similar object.
virtual void Evaluate(CQueryParseTree::TNode &node)=0
Abstract node evaluation function.
CMQueryNodeValue(CQueryParseTree::TNode *n)
bool AssignToRef(const CMQueryNodeValue &source)
vector< CRef< CMQueryNodeValue > > TUserArgs
bool x_FindNotSet()
Find not set value.
void SetRef(CRef< CMQueryNodeValue > node)
bool IsNotSetType() const
Check/get functions result from the top node after calculation.
void x_ProcessInvalidParams(CQueryParseTree::TNode &node)
Throws exception for invalid number of types of arguments.
virtual bool ExistRTVar(const string &name)=0
Int8 m_Int
For data that is an integer or converted into one.
bool m_Bool
For data that is a boolean or converted into one.
virtual bool ResolveIdentifier(const string &ident, double &value)
virtual void ResetTmpRTVarObjects()=0
virtual void Evaluate(CQueryParseTree::TNode &node)
Function is a placeholder for run-time variable processing.
CRef< CMQueryNodeValue > m_Result
Node for result storage.
void SetStrings(const vector< string > &data)
CMacroExec * GetContext()
class CMQueryFunctionBase
TUserArgs m_Arguments
Vector of argument node values.
bool x_ValidateAll(Uint4 number, CMQueryNodeValue::EType type)
Checks the number and type of arguments.
virtual bool GetTmpRTVarObject(const string &name, CObjectInfo &oi)=0
void SetObjects(const TObs &obs)
CQueryParseTree::TNode * m_Node
Node from parsed query tree.
bool GetBoolValue() const
double m_Double
For data that is a double or converted into one.
bool x_IsCaseSensitive()
Gets case sensitiveness flag from environment.
vector< string > m_Strings
Vector of strings.
bool m_NotSet
Type of result is not set.
virtual void Evaluate(CQueryParseTree::TNode &node)
Function implements the assignment operator.
virtual bool ResolveIdentifier(const string &identifier, CMQueryNodeValue &vi, const CQueryParseTree::TNode *parent)=0
CQueryParseTree::TNode * GetNode() const
virtual void CallFunction(const string &name, CQueryParseTree::TNode &qnode)=0
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
uint32_t Uint4
4-byte (32-bit) unsigned integer
int64_t Int8
8-byte (64-bit) signed integer
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
ETreeTraverseCode
Tree traverse code returned by the traverse predicate function.
#define NCBI_GUIOBJUTILS_EXPORT
Defines to provide correct exporting from DLLs in Windows.
const GenericPointer< typename T::ValueType > T2 value
const CharType(& source)[N]
Int4 delta(size_t dimension_, const Int4 *score_)
Query parser execution implementations.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4