bv_cont->
SetBV(bv_res =
newBV(*arg_bv));
131bv_cont->
SetBV(bv_res =
newBV);
146 for(
size_t i= 1;
i< args.size(); ++
i) {
164bv_cont->
SetBV(bv_res =
newBV(*arg_bv));
167bv_cont->
SetBV(bv_res =
newBV);
172bv_res->combine_operation(*arg_bv, (
bm::operation) op_code);
181bv_res->clear(
true);
211 if(args.size() == 0) {
217bv_res = this->
ArgToRes(qnode, args[0]);
245 if(args.size() == 0) {
249bv_res = this->
ArgToRes(qnode, args[0]);
250 if(args.size() == 1) {
256bv_cont->
SetBV(bv_res =
newBV);
287 "Query execution failed. Unknown function: =");
298 for(
size_t i= 1;
i< args.size(); ++
i) {
303unique_ptr<CQueryParseTree::TNode> eq_node;
321 if(!cont)
continue;
333bv_cont->
SetBV(bv_res =
newBV(*arg_bv));
336bv_cont->
SetBV(bv_res =
newBV);
358bv_cont->
SetBV(bv_res =
newBV);
Serialization / compression of bvector<>. Set theoretical operations on compressed BLOBs.
Query tree user object for storing bit-vectors.
Base class for evaluation functions.
Base class for all bit-vector oriented function implementations.
Implementation of IN as OR-ed EQ search.
Implementation of logical functions.
Implementation of logical NOT.
Reallocable memory buffer (no memory copy overhead) Mimics vector<>, without the overhead of explicit...
definition of a Culling tree
Base class for query node user defined object.
size_type deserialize(bvector_type &bv, const unsigned char *buf, set_operation op, bool exit_on_one=false)
Deserialize bvector using buffer as set operation argument.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
virtual void Reset()
Reset user object (for reuse without reallocation)
CQueryFunctionBase * GetFunc(CQueryParseNode::EType func_type)
Return query function pointer (if registered).
virtual void Evaluate(CQueryParseTree::TNode &qnode)
Query node evaluation function (performs actual programmed by the node action)
CQueryFunction_BV_Base< BV > TParent
CQueryFunction_BV_Base< BV > TParent
CQueryFunction_BV_Base< BV > TParent
CQueryEval_BV_Value(const CQueryEval_BV_Value &)
TBVContainer * MakeContainer(CQueryParseTree::TNode &qnode)
Create container if it does not exist.
CQueryParseTree & GetQueryTree()
Get query tree (execution context)
BV * ArgToRes(CQueryParseTree::TNode &qnode, CQueryParseTree::TNode *arg_node)
Unpack argument to result bitvector (use assignment for deserialization)
virtual void Evaluate(CQueryParseTree::TNode &qnode)
Query node evaluation function (performs actual programmed by the node action)
vector< CQueryParseTree::TNode * > TArgVector
Vector for easy argument access.
unique_ptr< TBuffer > m_BV_Buffer
serialized bitvector
CQueryFunction_BV_In_Or()
void ProcessArgVector(CQueryParseTree::TNode &qnode, BV *bv_res, CQueryFunctionBase::TArgVector &args, const bm::set_operation op_code)
unique_ptr< BV > m_BV
bitvector
virtual void Evaluate(CQueryParseTree::TNode &qnode)
Query node evaluation function (performs actual programmed by the node action)
virtual void Evaluate(CQueryParseTree::TNode &qnode)=0
Query node evaluation function (performs actual programmed by the node action)
TBVContainer * GetContainer(CQueryParseTree::TNode &qnode)
Extract user object out of the current node.
void MakeArgVector(CQueryParseTree::TNode &qnode, TArgVector &args)
Created vector of arguments (translate sub-nodes to vector)
CQueryFunction_BV_Logic(bm::set_operation op)
CQueryEval_BV_Value< BV > TBVContainer
CQueryEval_BV_Value & operator=(const CQueryEval_BV_Value &)
TBuffer * ReleaseBuffer()
void SetBuffer(TBuffer *buf)
Attach buffer (with ownership transfer)
void SetBV(TBitVector *bv)
Attach bitvector (with ownership transfer)
const bm::set_operation m_OpCode
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
const TValue & GetValue(void) const
Return node's value.
@ eNoDelete
Just exclude nodes from the tree, do not destroy them.
operation
Bit operations.
set_operation
Codes of set operations.
Compressed bitset (entry point to bm.h)
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