#include <coherence/util/filter/ArrayFilter.hpp>
Inherits Object, IndexAwareFilter, and PortableObject.
Inherited by AllFilter, AnyFilter, and XorFilter.
Public Types | |
typedef spec::Handle | Handle |
ArrayFilter Handle definition. | |
typedef spec::View | View |
ArrayFilter View definition. | |
typedef spec::Holder | Holder |
ArrayFilter Holder definition. | |
Public Member Functions | |
virtual void | readExternal (PofReader::Handle hIn) |
virtual void | writeExternal (PofWriter::Handle hOut) const |
virtual bool | equals (Object::View v) const |
Compare the ArrayFilter with another object to determine equality. | |
virtual size32_t | hashCode () const |
Return a hash code value for the Object. This method is supported for the benefit of hash-based containers.
The general contract of
The default implementation is identity based.
| |
virtual TypedHandle < const String > | toString () const |
Output a human-readable description of this Object to the given stream. Note that when overriding this method the return type must be TypedHandle<const String> rather then String::View. These two types are assignment compatible but not equivalent and declaring the override with String::View will not be a compatible override. coherence::lang::operator<<(std::ostream, Object::View) is defined and will call into the toString method, to output Objects. If a managed String object is desired, the COH_TO_STRING macro can be used to build up a String from streamable contents and is generally how toString() will be implemented.
Object::View vKey = ... Object::View vValue = ... std::cout << vKey << " = " << vValue << std::endl; String::View vs = COH_TO_STRING(vKey << " = " << vValue); The COH_TO_STRING macro is also the most common way to implement the toString method. For example:
virtual TypedHandle<const String> Person::toString() const { return COH_TO_STRING("Name: " << f_sName << " SSN: " << f_nSSN); }
| |
virtual ObjectArray::View | getFilters () const |
Obtain the Filter array. | |
virtual void | honorOrder () |
Ensure that the order of underlying filters is preserved by the applyIndex() and evaluateEntry() implementations. | |
Protected Member Functions | |
ArrayFilter () | |
Default constructor (necessary for the PortableObject interface). | |
ArrayFilter (ObjectArray::View vaFilter) | |
Construct a logical filter that applies a binary operator to a filter array. | |
virtual Filter::View | applyFilter (IndexAwareFilter::View vFilter, Map::View vMapIndexes, Set::Handle hSetKeys) const |
Apply the specified IndexAwareFilter to the specified keySet. | |
virtual void | optimizeFilterOrder (Map::View vMapIndexes, Set::View vSetKeys) const |
Sort all the participating filters according to their effectiveness. | |
Protected Attributes | |
MemberView< ObjectArray > | m_vaFilter |
The Filter array. | |
bool | m_fPreserveOrder |
Flag indicating whether or not the filter order should be preserved. | |
Classes | |
class | WeightedFilter |
A thin wrapper around a Filter allowing for sorting the filters according to their effectiveness. More... |
ArrayFilter | ( | ObjectArray::View | vaFilter | ) | [protected] |
virtual bool equals | ( | Object::View | v | ) | const [virtual] |
Compare the ArrayFilter with another object to determine equality.
Two ArrayFilter objects are considered equal iff they belong to the same class and their underlying Filter arrays are deep-equal.
virtual ObjectArray::View getFilters | ( | ) | const [virtual] |
virtual void honorOrder | ( | ) | [virtual] |
Ensure that the order of underlying filters is preserved by the applyIndex() and evaluateEntry() implementations.
virtual Filter::View applyFilter | ( | IndexAwareFilter::View | vFilter, | |
Map::View | vMapIndexes, | |||
Set::Handle | hSetKeys | |||
) | const [protected, virtual] |
Apply the specified IndexAwareFilter to the specified keySet.
vFilter | the IndexAwareFilter to apply an index to | |
vMapIndexes | the available MapIndex objects keyed by the related ValueExtractor; read-only | |
hSetKeys | the mutable set of keys that remain to be filtered |
virtual void optimizeFilterOrder | ( | Map::View | vMapIndexes, | |
Set::View | vSetKeys | |||
) | const [protected, virtual] |
Sort all the participating filters according to their effectiveness.
vMapIndexes | the available MapIndex objects keyed by the related ValueExtractor; read-only | |
vSetKeys | the set of keys that will be filtered; read-only |
bool m_fPreserveOrder [mutable, protected] |