ORIGINAL
|
Composite filter builder with logical operator chaining. More...
#include <filterStream.h>
Public Member Functions | |
filterStream & | operator&& (const filter< TYPE > &f) |
AND operator with single filter. | |
filterStream & | operator&& (const filterStream &fs) |
AND operator with another filterStream. | |
filterStream & | operator|| (const filter< TYPE > &f) |
OR operator with single filter. | |
filterStream & | operator|| (const filterStream &fs) |
OR operator with another filterStream. | |
filterStream & | operator! () |
Logical NOT operator. | |
bool | operator() (const TYPE &t) const |
Filter evaluation operator. | |
Protected Member Functions | |
filterStream () | |
Protected constructor for stream initialization. | |
void | addBrackets () |
Add bracket operators for grouping. | |
void | addAndOpt () |
Add AND operator to the stream. | |
void | addOrOpt () |
Add OR operator to the stream. | |
void | addNotOpt () |
Add NOT operator to the stream. | |
void | pushEnd (const filter< TYPE > &f) |
Append filter to the stream. | |
void | pushAll (const filterStream &fs) |
Merge another filterStream into this one. | |
void | toPostFix () const |
Convert infix notation to postfix. | |
Friends | |
template<typename T> | |
filterStream< T > | operator&& (const filter< T > &f1, const filter< T > &f2) |
Create AND filterStream from two filters. | |
template<typename T> | |
filterStream< T > | operator&& (const filter< T > &f, const filterStream< T > &ofs) |
AND operator between filter and filterStream. | |
template<typename T> | |
filterStream< T > | operator&& (const filterStream< T > &ofs, const filter< T > &f) |
AND operator between filterStream and filter. | |
template<typename T> | |
filterStream< T > | operator|| (const filter< T > &f1, const filter< T > &f2) |
Create OR filterStream from two filters. | |
template<typename T> | |
filterStream< T > | operator|| (const filter< T > &f, const filterStream< T > &ofs) |
OR operator between filter and filterStream. | |
template<typename T> | |
filterStream< T > | operator|| (const filterStream< T > &ofs, const filter< T > &f) |
OR operator between filterStream and filter. | |
template<typename T> | |
filterStream< T > | operator! (const filter< T > &f) |
Create negated filterStream from filter. | |
template<typename T> | |
filterStream< T > | operator! (const filterStream< T > &ofs) |
Create negated filterStream from existing stream. | |
template<typename T> | |
filterStream< T > | group (const filterStream< T > &ofs) |
Create grouped filterStream from existing stream. | |
template<typename T> | |
filterStream< T > | group (const filter< T > &f) |
Create grouped filterStream from single filter. | |
Composite filter builder with logical operator chaining.
TYPE | Element type for filtering |
Enables construction of complex filter conditions through operator overloading. Maintains internal operator precedence using postfix conversion. Use group() for explicit precedence control instead of parentheses.
|
explicitprotected |
Protected constructor for stream initialization.
|
protected |
Add AND operator to the stream.
Inserts logical AND between subsequent filters
|
protected |
Add bracket operators for grouping.
Wraps current stream in logical parentheses
|
protected |
Add NOT operator to the stream.
Negates subsequent filter condition
|
protected |
Add OR operator to the stream.
Inserts logical OR between subsequent filters
auto original::filterStream< TYPE >::operator! | ( | ) |
Logical NOT operator.
auto original::filterStream< TYPE >::operator&& | ( | const filter< TYPE > & | f | ) |
AND operator with single filter.
f | Filter to AND with current stream |
auto original::filterStream< TYPE >::operator&& | ( | const filterStream< TYPE > & | fs | ) |
AND operator with another filterStream.
fs | filterStream to AND with current stream |
auto original::filterStream< TYPE >::operator() | ( | const TYPE & | t | ) | const |
Filter evaluation operator.
t | Element to test against filter conditions |
auto original::filterStream< TYPE >::operator|| | ( | const filter< TYPE > & | f | ) |
OR operator with single filter.
f | Filter to OR with current stream |
auto original::filterStream< TYPE >::operator|| | ( | const filterStream< TYPE > & | fs | ) |
OR operator with another filterStream.
fs | filterStream to OR with current stream |
|
protected |
Merge another filterStream into this one.
fs | Source filterStream to merge |
|
protected |
Append filter to the stream.
f | Filter to add to the end of stream |
|
protected |
Convert infix notation to postfix.
Internal implementation of Shunting Yard algorithm
|
friend |
Create grouped filterStream from single filter.
T | Element type |
f | Filter to group |
Enables future operator precedence modifications
|
friend |
Create grouped filterStream from existing stream.
T | Element type |
ofs | filterStream to group |
Use instead of parentheses for explicit precedence control
|
friend |
Create negated filterStream from filter.
T | Element type |
f | Filter to negate |
|
friend |
Create negated filterStream from existing stream.
T | Element type |
ofs | filterStream to negate |
|
friend |
AND operator between filter and filterStream.
T | Element type |
f | Filter operand |
ofs | filterStream operand |
|
friend |
Create AND filterStream from two filters.
T | Element type |
f1 | First filter operand |
f2 | Second filter operand |
|
friend |
AND operator between filterStream and filter.
T | Element type |
ofs | filterStream operand |
f | Filter operand |
|
friend |
OR operator between filter and filterStream.
T | Element type |
f | Filter operand |
ofs | filterStream operand |
|
friend |
Create OR filterStream from two filters.
T | Element type |
f1 | First filter operand |
f2 | Second filter operand |
|
friend |
OR operator between filterStream and filter.
T | Element type |
ofs | filterStream operand |
f | Filter operand |