pianod2
multisource multiuser scriptable networked music player
Classes | Namespaces
filter.h File Reference

Track filter. More...

#include <config.h>
#include <cstdlib>
#include <string>
#include <vector>
#include <memory>
#include "enumeratedarray.h"
#include "musictypes.h"
Include dependency graph for filter.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Filter
 Track data filter. More...
 
class  Filter::ParseError
 Error for generic filter syntax/parse errors. More...
 
class  Filter::InvalidValue
 Error for filter expression containing an invalid value. More...
 
class  Filter::DisallowedOperator
 Error for filter expressions trying to use a relational operation incorrectly. More...
 
class  Filter::Operation
 Nodes for the filter parse tree. More...
 
union  Filter::Operation::value_t
 
struct  Filter::Operation::value_t::rating_t
 For ratings and user-specific operations. More...
 
struct  Filter::Operation::value_t::string_t
 For string operations. More...
 
struct  Filter::Operation::value_t::subnodes_t
 For and/or operations. More...
 
class  PermutedFilter
 Permuted filter, like Filter but constructed from a string. More...
 
class  ListFilter
 Permuted filter, like Filter but constructed from a list of strings. More...
 

Namespaces

 Query
 Filter-to-query converter.
 

Detailed Description

Track filter.

A filter is created from an string expression, from which it builds an efficient expression tree. The filter can then be used to assess whether MusicThingies of any kind matches the expression. If the filter compares on a field that isn't present in the thingie, that comparison resolves to false.