## GUPnPSearchCriteriaParser GUPnPSearchCriteriaParser — A/V search criteria parser |

## Synopsis

                        GUPnPSearchCriteriaParser;
    enum                GUPnPSearchCriteriaOp;
    GUPnPSearchCriteriaParser * gupnp_search_criteria_parser_new
                                                            (void);
    gboolean            gupnp_search_criteria_parser_parse_text
                                                            (GUPnPSearchCriteriaParser *parser,
                                                             const char *text,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----GUPnPSearchCriteriaParser

      GEnum
       +----GUPnPSearchCriteriaOp

## Signals

      "begin-parens"                                   : Run Last
      "conjunction"                                    : Run Last
      "disjunction"                                    : Run Last
      "end-parens"                                     : Run Last
      "expression"                                     : Run Last

## Description

GUPnPSearchCriteriaParser parses ContentDirectory search criteria strings.

Note that no signals will be emitted if a wildcard is specified, and that the user is responsible for ensuring precedence of conjunction over disjunction.

## Details

### GUPnPSearchCriteriaParser

    typedef struct _GUPnPSearchCriteriaParser GUPnPSearchCriteriaParser;

### enum GUPnPSearchCriteriaOp

    typedef enum {
            /* G_TYPE_STRING */
            GUPNP_SEARCH_CRITERIA_OP_EQ               = G_TOKEN_LAST + 1,
            GUPNP_SEARCH_CRITERIA_OP_NEQ              = G_TOKEN_LAST + 2,
            GUPNP_SEARCH_CRITERIA_OP_LESS             = G_TOKEN_LAST + 3,
            GUPNP_SEARCH_CRITERIA_OP_LEQ              = G_TOKEN_LAST + 4,
            GUPNP_SEARCH_CRITERIA_OP_GREATER          = G_TOKEN_LAST + 5,
            GUPNP_SEARCH_CRITERIA_OP_GEQ              = G_TOKEN_LAST + 6,
            GUPNP_SEARCH_CRITERIA_OP_CONTAINS         = G_TOKEN_LAST + 7,
            GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN = G_TOKEN_LAST + 8,
            GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM     = G_TOKEN_LAST + 9,

            /* G_TYPE_BOOLEAN */
            GUPNP_SEARCH_CRITERIA_OP_EXISTS           = G_TOKEN_LAST + 10
    } GUPnPSearchCriteriaOp;

The possible operators in SearchCriteria strings.

`GUPNP_SEARCH_CRITERIA_OP_EQ` | '='
`GUPNP_SEARCH_CRITERIA_OP_NEQ` | '!='
`GUPNP_SEARCH_CRITERIA_OP_LESS` | '<'
`GUPNP_SEARCH_CRITERIA_OP_LEQ` | '<='
`GUPNP_SEARCH_CRITERIA_OP_GREATER` | '>'
`GUPNP_SEARCH_CRITERIA_OP_GEQ` | '>='
`GUPNP_SEARCH_CRITERIA_OP_CONTAINS` | 'contains'
`GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN` | 'doesNotContain'
`GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM` | 'derivedFrom'
`GUPNP_SEARCH_CRITERIA_OP_EXISTS` | 'exists'

### gupnp_search_criteria_parser_new ()

    GUPnPSearchCriteriaParser * gupnp_search_criteria_parser_new
                                                            (void);

Returns : | A new GUPnPSearchCriteriaParser object.

### gupnp_search_criteria_parser_parse_text ()

    gboolean            gupnp_search_criteria_parser_parse_text
                                                            (GUPnPSearchCriteriaParser *parser,
                                                             const char *text,
                                                             GError **error);

Parses `text`, emitting the various defined signals on the way. If an error occured `error` will be set.

`parser` : | A GUPnPSearchCriteriaParser
`text` : | The search criteria string to be parsed
`error` : | The location where to store the error information if any, or NULL
Returns : | TRUE on success.

## Signal Details

### The `"begin-parens"` signal

    void                user_function                      (GUPnPSearchCriteriaParser *parser,
                                                            gpointer                   user_data)      : Run Last

The ::begin_parens signal is emitted to mark the beginning of a parenthetical expression.

`parser` : | The GUPnPSearchCriteriaParser that received the signal
`user_data` : | user data set when the signal handler was connected.

### The `"conjunction"` signal

    void                user_function                      (GUPnPSearchCriteriaParser *parser,
                                                            gpointer                   user_data)      : Run Last

The ::conjuction signal is emitted whenever a conjuction marker (and) is parsed.

`parser` : | The GUPnPSearchCriteriaParser that received the signal
`user_data` : | user data set when the signal handler was connected.

### The `"disjunction"` signal

    void                user_function                      (GUPnPSearchCriteriaParser *parser,
                                                            gpointer                   user_data)      : Run Last

The ::disjuction signal is emitted whenever a disjuction marker (or&rpar is parsed.

`parser` : | The GUPnPSearchCriteriaParser that received the signal
`user_data` : | user data set when the signal handler was connected.

### The `"end-parens"` signal

    void                user_function                      (GUPnPSearchCriteriaParser *parser,
                                                            gpointer                   user_data)      : Run Last

The ::end_parens signal is emitted to mark the end of a parenthetical expression.

`parser` : | The GUPnPSearchCriteriaParser that received the signal
`user_data` : | user data set when the signal handler was connected.

### The `"expression"` signal

    gboolean            user_function                      (GUPnPSearchCriteriaParser *parser,
                                                            gchar                     *property,
                                                            GUPnPSearchCriteriaOp      op,
                                                            gchar                     *value,
                                                            gpointer                   error,
                                                            gpointer                   user_data)      : Run Last

The ::expression signal is emitted whenever an expression is parsed. Set `error` and return `FALSE` if an error occurred.

`parser` : | The GUPnPSearchCriteriaParser that received the signal
`property` : | The property
`op` : | The operator as GUPnPSearchCriteriaOp
`value` : | The value as string
`error` : | Place-holder for any possible errors from handler
`user_data` : | user data set when the signal handler was connected.