| Qore DataProvider Module Reference 3.2.2

Loading...
Searching...
No Matches
AbstractDataProviderRecordIterator.qc.dox.h
1// -*- mode: c++; indent-tabs-mode: nil -*-
3
24
25// assume local scope for variables, do not use "$" signs
26// require type definitions everywhere
28// enable all warnings
29
31 namespace DataProvider {
38 const DP_OP_AND = "AND";
39
41 const DP_OP_OR = "OR";
43
49
51 const DP_SEARCH_OP_REGEX = "regex";
52
54
56 const DP_SEARCH_OP_LT = "<";
57
59
61 const DP_SEARCH_OP_LE = "<=";
62
64
66 const DP_SEARCH_OP_GT = ">";
67
69
71 const DP_SEARCH_OP_GE = ">=";
72
74
76 const DP_SEARCH_OP_NE = "!=";
77
79
81 const DP_SEARCH_OP_EQ = "=";
82
84
86 const DP_SEARCH_OP_BETWEEN = "between";
87
89
91 const DP_SEARCH_OP_IN = "in";
92
94
96 const DP_SEARCH_OP_NOT = "not";
98
100 public struct SearchOperatorInfo {
101 string op;
102 auto arg;
103};
104
106 const DefaultGenericSearchOpMap = ...;
107
108
125 hash<SearchOperatorInfo> dp_make_op(string op, auto arg);
126
127
129
138 hash<SearchOperatorInfo> dp_op_regex(string str);
139
140
142
151 hash<SearchOperatorInfo> dp_op_like(string str);
152
153
155
164 hash<SearchOperatorInfo> dp_op_lt(auto arg);
165
166
168
177 hash<SearchOperatorInfo> dp_op_le(auto arg);
178
179
181
190 hash<SearchOperatorInfo> dp_op_gt(auto arg);
191
192
194
203 hash<SearchOperatorInfo> dp_op_ge(auto arg);
204
205
207
216 hash<SearchOperatorInfo> dp_op_ne(auto arg);
217
218
220
229 hash<SearchOperatorInfo> dp_op_eq(auto arg);
230
231
233
245 hash<SearchOperatorInfo> dp_op_between(auto l, auto r);
246
247
249
256 hash<SearchOperatorInfo> dp_op_in();
257
258
260
269 hash<SearchOperatorInfo> dp_op_in(list<auto> args);
270
271
273
280 hash<SearchOperatorInfo> dp_op_not(hash<auto> arg);
281
283
285
288 class AbstractDataProviderRecordIterator : public AbstractIterator {
289
290 public:
292 const DefaultBlockSize = 1000;
293
294 protected:
296 int block_size = DefaultBlockSize;
297
298 public:
299
301 constructor(int block_size = DefaultBlockSize);
302
303
305
309 bool supportsBulkApi();
310
311
313
317 *AbstractDataProviderBulkRecordInterface getBulkApi();
318
319
321
323 *hash<string, AbstractDataField> getRecordType();
324
325
327
329 abstract hash<auto> getValue();
330
332
338 protected:
339 auto doMemberGate(string key);
340 public:
341
342
344
349 protected:
350 static bool matchGeneric(hash<auto> record, hash<DataProviderExpression> where_cond);
351 public:
352
353
355
360 protected:
361 static bool matchGeneric(hash<auto> record, *hash<auto> where_cond);
362 public:
363
364
366 protected:
367 static bool evalOperator(string field, hash<auto> cmd, hash<auto> op, hash<auto> record);
368 public:
369
370
372
375 protected:
376 static bool matchGenericValue(auto expects, auto val);
377 public:
378
379};
380};
DataProvider::AbstractDataProviderBulkRecordInterface
Defines the abstract class for data provider iterators; the destructor releases the iterator.
Definition AbstractDataProviderBulkRecordInterface.qc.dox.h:33
DataProvider::AbstractDataProviderRecordIterator
Defines the abstract class for data provider iterators; the destructor releases the iterator.
Definition AbstractDataProviderRecordIterator.qc.dox.h:288
DataProvider::AbstractDataProviderRecordIterator::matchGeneric
static bool matchGeneric(hash< auto > record, *hash< auto > where_cond)
Checks if the current record matches the search criteria.
DataProvider::AbstractDataProviderRecordIterator::getValue
abstract hash< auto > getValue()
returns a single record if the iterator is valid
DataProvider::AbstractDataProviderRecordIterator::matchGenericValue
static bool matchGenericValue(auto expects, auto val)
Match a single value.
DataProvider::AbstractDataProviderRecordIterator::evalOperator
static bool evalOperator(string field, hash< auto > cmd, hash< auto > op, hash< auto > record)
Evaluates a generic search operator on the field value and record and returns the result.
DataProvider::AbstractDataProviderRecordIterator::getBulkApi
*AbstractDataProviderBulkRecordInterface getBulkApi()
Returns the bulk data interface if supported.
DataProvider::AbstractDataProviderRecordIterator::DefaultBlockSize
const DefaultBlockSize
Default block size.
Definition AbstractDataProviderRecordIterator.qc.dox.h:292
DataProvider::AbstractDataProviderRecordIterator::supportsBulkApi
bool supportsBulkApi()
Returns True if the iterator supports bulk operation.
DataProvider::AbstractDataProviderRecordIterator::matchGeneric
static bool matchGeneric(hash< auto > record, hash< DataProviderExpression > where_cond)
Checks if the current record matches the search criteria.
DataProvider::AbstractDataProviderRecordIterator::block_size
int block_size
Block size for bulk iteration.
Definition AbstractDataProviderRecordIterator.qc.dox.h:296
DataProvider::AbstractDataProviderRecordIterator::doMemberGate
auto doMemberGate(string key)
Returns the value of the given field in the current record, if the iterator is valid.
DataProvider::AbstractDataProviderRecordIterator::constructor
constructor(int block_size=DefaultBlockSize)
Creates the object and optionally sets the bulk iteration block size.
DataProvider::AbstractDataProviderRecordIterator::getRecordType
*hash< string, AbstractDataField > getRecordType()
Returns the record description, if available.
DataProvider::dp_op_ge
hash< SearchOperatorInfo > dp_op_ge(auto arg)
returns an SearchOperatorInfo hash for the ">=" operator with the given argument
DataProvider::dp_op_in
hash< SearchOperatorInfo > dp_op_in()
returns an SearchOperatorInfo hash for the "in" operator with all arguments passed to the function
DataProvider::dp_op_between
hash< SearchOperatorInfo > dp_op_between(auto l, auto r)
returns an SearchOperatorInfo hash for the "between" operator with the given arguments
DataProvider::dp_op_lt
hash< SearchOperatorInfo > dp_op_lt(auto arg)
returns an SearchOperatorInfo hash for the "<" operator with the given argument
DataProvider::dp_op_regex
hash< SearchOperatorInfo > dp_op_regex(string str)
returns an SearchOperatorInfo hash for regular expression matches
DataProvider::dp_op_like
hash< SearchOperatorInfo > dp_op_like(string str)
returns an SearchOperatorInfo hash for the SQL-like "like" operator with the given argument
DataProvider::dp_op_eq
hash< SearchOperatorInfo > dp_op_eq(auto arg)
returns an SearchOperatorInfo hash for the "=" operator with the given argument
DataProvider::dp_op_gt
hash< SearchOperatorInfo > dp_op_gt(auto arg)
returns an SearchOperatorInfo hash for the ">" operator with the given argument
DataProvider::dp_op_not
hash< SearchOperatorInfo > dp_op_not(hash< auto > arg)
returns an SearchOperatorInfo hash for the "not" operator
DataProvider::dp_op_le
hash< SearchOperatorInfo > dp_op_le(auto arg)
returns an SearchOperatorInfo hash for the "<=" operator with the given argument
DataProvider::dp_op_ne
hash< SearchOperatorInfo > dp_op_ne(auto arg)
returns an SearchOperatorInfo hash for the "!=" or "<>" operator with the given argument
DataProvider::dp_make_op
hash< SearchOperatorInfo > dp_make_op(string op, auto arg)
DataProvider::DP_SEARCH_OP_EQ
const DP_SEARCH_OP_EQ
Identifies the generic data provider equals operator (=) for use in generic search criteria.
Definition AbstractDataProviderRecordIterator.qc.dox.h:81
DataProvider::DP_SEARCH_OP_REGEX
const DP_SEARCH_OP_REGEX
Definition AbstractDataProviderRecordIterator.qc.dox.h:51
DataProvider::DP_SEARCH_OP_GT
const DP_SEARCH_OP_GT
Identifies the generic data provider greater than operator (>) for use in generic search criteria.
Definition AbstractDataProviderRecordIterator.qc.dox.h:66
DataProvider::DP_SEARCH_OP_IN
const DP_SEARCH_OP_IN
Identifies the generic data provider "in" operator for use in generic search criteria.
Definition AbstractDataProviderRecordIterator.qc.dox.h:91
DataProvider::DP_SEARCH_OP_GE
const DP_SEARCH_OP_GE
Identifies the generic data provider greater than or equals operator (>=) for use in generic search c...
Definition AbstractDataProviderRecordIterator.qc.dox.h:71
DataProvider::DP_SEARCH_OP_BETWEEN
const DP_SEARCH_OP_BETWEEN
Identifies the generic data provider "between" operator for use in generic search criteria.
Definition AbstractDataProviderRecordIterator.qc.dox.h:86
DataProvider::DP_SEARCH_OP_NE
const DP_SEARCH_OP_NE
Identifies the generic data provider not equals operator (!= or <>) for use in generic search criteri...
Definition AbstractDataProviderRecordIterator.qc.dox.h:76
DataProvider::DP_SEARCH_OP_NOT
const DP_SEARCH_OP_NOT
Identifies the generic data provider "not" operator for use in generic search criteria.
Definition AbstractDataProviderRecordIterator.qc.dox.h:96
DataProvider::DP_SEARCH_OP_LT
const DP_SEARCH_OP_LT
Identifies the generic data provider less than (<) operator for use in generic search criteria.
Definition AbstractDataProviderRecordIterator.qc.dox.h:56
DataProvider::DP_SEARCH_OP_LE
const DP_SEARCH_OP_LE
Identifies the generic data provider less than or equals (<=) operator for use in generic search crit...
Definition AbstractDataProviderRecordIterator.qc.dox.h:61
DataProvider::DP_OP_OR
const DP_OP_OR
OR logic.
Definition AbstractDataProviderRecordIterator.qc.dox.h:41
DataProvider::DP_OP_AND
const DP_OP_AND
Definition AbstractDataProviderRecordIterator.qc.dox.h:38
DataProvider
Qore AbstractDataField class definition.
Definition AbstractDataField.qc.dox.h:27
DataProvider::DefaultGenericSearchOpMap
const DefaultGenericSearchOpMap
a hash of valid operators for use in generic search criteria
Definition AbstractDataProviderRecordIterator.qc.dox.h:106
DataProvider::SearchOperatorInfo
Generic operator info hash as returned by all generic search operator functions.
Definition AbstractDataProviderRecordIterator.qc.dox.h:100
DataProvider::SearchOperatorInfo::op
string op
the operator string code
Definition AbstractDataProviderRecordIterator.qc.dox.h:101
DataProvider::SearchOperatorInfo::arg
auto arg
optional argument
Definition AbstractDataProviderRecordIterator.qc.dox.h:102