ORIGINAL
Loading...
Searching...
No Matches
original::filterStream< TYPE > Class Template Reference

Composite filter builder with logical operator chaining. More...

#include <filterStream.h>

Collaboration diagram for original::filterStream< TYPE >:
Collaboration graph

Public Member Functions

filterStreamoperator&& (const filter< TYPE > &f)
 AND operator with single filter.
 
filterStreamoperator&& (const filterStream &fs)
 AND operator with another filterStream.
 
filterStreamoperator|| (const filter< TYPE > &f)
 OR operator with single filter.
 
filterStreamoperator|| (const filterStream &fs)
 OR operator with another filterStream.
 
filterStreamoperator! ()
 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.
 

Detailed Description

template<typename TYPE>
class original::filterStream< TYPE >

Composite filter builder with logical operator chaining.

Template Parameters
TYPEElement 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.

Constructor & Destructor Documentation

◆ filterStream()

template<typename TYPE>
original::filterStream< TYPE >::filterStream ( )
explicitprotected

Protected constructor for stream initialization.

Note
Used internally and by friend functions

Member Function Documentation

◆ addAndOpt()

template<typename TYPE>
auto original::filterStream< TYPE >::addAndOpt ( )
protected

Add AND operator to the stream.

Inserts logical AND between subsequent filters

◆ addBrackets()

template<typename TYPE>
auto original::filterStream< TYPE >::addBrackets ( )
protected

Add bracket operators for grouping.

Wraps current stream in logical parentheses

◆ addNotOpt()

template<typename TYPE>
auto original::filterStream< TYPE >::addNotOpt ( )
protected

Add NOT operator to the stream.

Negates subsequent filter condition

◆ addOrOpt()

template<typename TYPE>
auto original::filterStream< TYPE >::addOrOpt ( )
protected

Add OR operator to the stream.

Inserts logical OR between subsequent filters

◆ operator!()

template<typename TYPE>
auto original::filterStream< TYPE >::operator! ( )

Logical NOT operator.

Returns
Reference to negated filterStream
Note
Automatically adds grouping parentheses

◆ operator&&() [1/2]

template<typename TYPE>
auto original::filterStream< TYPE >::operator&& ( const filter< TYPE > & f)

AND operator with single filter.

Parameters
fFilter to AND with current stream
Returns
Reference to modified filterStream

◆ operator&&() [2/2]

template<typename TYPE>
auto original::filterStream< TYPE >::operator&& ( const filterStream< TYPE > & fs)

AND operator with another filterStream.

Parameters
fsfilterStream to AND with current stream
Returns
Reference to modified filterStream

◆ operator()()

template<typename TYPE>
auto original::filterStream< TYPE >::operator() ( const TYPE & t) const

Filter evaluation operator.

Parameters
tElement to test against filter conditions
Returns
bool True if element passes filter chain

◆ operator||() [1/2]

template<typename TYPE>
auto original::filterStream< TYPE >::operator|| ( const filter< TYPE > & f)

OR operator with single filter.

Parameters
fFilter to OR with current stream
Returns
Reference to modified filterStream

◆ operator||() [2/2]

template<typename TYPE>
auto original::filterStream< TYPE >::operator|| ( const filterStream< TYPE > & fs)

OR operator with another filterStream.

Parameters
fsfilterStream to OR with current stream
Returns
Reference to modified filterStream

◆ pushAll()

template<typename TYPE>
auto original::filterStream< TYPE >::pushAll ( const filterStream< TYPE > & fs)
protected

Merge another filterStream into this one.

Parameters
fsSource filterStream to merge

◆ pushEnd()

template<typename TYPE>
auto original::filterStream< TYPE >::pushEnd ( const filter< TYPE > & f)
protected

Append filter to the stream.

Parameters
fFilter to add to the end of stream

◆ toPostFix()

template<typename TYPE>
auto original::filterStream< TYPE >::toPostFix ( ) const
protected

Convert infix notation to postfix.

Internal implementation of Shunting Yard algorithm

Friends And Related Symbol Documentation

◆ group [1/2]

template<typename TYPE>
template<typename T>
filterStream< T > group ( const filter< T > & f)
friend

Create grouped filterStream from single filter.

Template Parameters
TElement type
Parameters
fFilter to group
Returns
New grouped filterStream

Enables future operator precedence modifications

◆ group [2/2]

template<typename TYPE>
template<typename T>
filterStream< T > group ( const filterStream< T > & ofs)
friend

Create grouped filterStream from existing stream.

Template Parameters
TElement type
Parameters
ofsfilterStream to group
Returns
New grouped filterStream

Use instead of parentheses for explicit precedence control

◆ operator! [1/2]

template<typename TYPE>
template<typename T>
filterStream< T > operator! ( const filter< T > & f)
friend

Create negated filterStream from filter.

Template Parameters
TElement type
Parameters
fFilter to negate
Returns
New filterStream with NOT operation
Note
Automatically adds grouping parentheses

◆ operator! [2/2]

template<typename TYPE>
template<typename T>
filterStream< T > operator! ( const filterStream< T > & ofs)
friend

Create negated filterStream from existing stream.

Template Parameters
TElement type
Parameters
ofsfilterStream to negate
Returns
New negated filterStream
Note
Automatically adds grouping parentheses

◆ operator&& [1/3]

template<typename TYPE>
template<typename T>
filterStream< T > operator&& ( const filter< T > & f,
const filterStream< T > & ofs )
friend

AND operator between filter and filterStream.

Template Parameters
TElement type
Parameters
fFilter operand
ofsfilterStream operand
Returns
New combined filterStream

◆ operator&& [2/3]

template<typename TYPE>
template<typename T>
filterStream< T > operator&& ( const filter< T > & f1,
const filter< T > & f2 )
friend

Create AND filterStream from two filters.

Template Parameters
TElement type
Parameters
f1First filter operand
f2Second filter operand
Returns
New filterStream with AND operation

◆ operator&& [3/3]

template<typename TYPE>
template<typename T>
filterStream< T > operator&& ( const filterStream< T > & ofs,
const filter< T > & f )
friend

AND operator between filterStream and filter.

Template Parameters
TElement type
Parameters
ofsfilterStream operand
fFilter operand
Returns
New combined filterStream

◆ operator|| [1/3]

template<typename TYPE>
template<typename T>
filterStream< T > operator|| ( const filter< T > & f,
const filterStream< T > & ofs )
friend

OR operator between filter and filterStream.

Template Parameters
TElement type
Parameters
fFilter operand
ofsfilterStream operand
Returns
New combined filterStream

◆ operator|| [2/3]

template<typename TYPE>
template<typename T>
filterStream< T > operator|| ( const filter< T > & f1,
const filter< T > & f2 )
friend

Create OR filterStream from two filters.

Template Parameters
TElement type
Parameters
f1First filter operand
f2Second filter operand
Returns
New filterStream with OR operation

◆ operator|| [3/3]

template<typename TYPE>
template<typename T>
filterStream< T > operator|| ( const filterStream< T > & ofs,
const filter< T > & f )
friend

OR operator between filterStream and filter.

Template Parameters
TElement type
Parameters
ofsfilterStream operand
fFilter operand
Returns
New combined filterStream

The documentation for this class was generated from the following file: