Blame libgupnp-av/gupnp-search-criteria-parser.h

Packit 712bc5
/*
Packit 712bc5
 * Copyright (C) 2008 OpenedHand Ltd.
Packit 712bc5
 *
Packit 712bc5
 * Authors: Jorn Baayen <jorn@openedhand.com>
Packit 712bc5
 *
Packit 712bc5
 * This library is free software; you can redistribute it and/or
Packit 712bc5
 * modify it under the terms of the GNU Library General Public
Packit 712bc5
 * License as published by the Free Software Foundation; either
Packit 712bc5
 * version 2 of the License, or (at your option) any later version.
Packit 712bc5
 *
Packit 712bc5
 * This library is distributed in the hope that it will be useful,
Packit 712bc5
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 712bc5
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 712bc5
 * Library General Public License for more details.
Packit 712bc5
 *
Packit 712bc5
 * You should have received a copy of the GNU Library General Public
Packit 712bc5
 * License along with this library; if not, write to the
Packit 712bc5
 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Packit 712bc5
 * Boston, MA 02110-1301, USA.
Packit 712bc5
 */
Packit 712bc5
Packit 712bc5
#ifndef __GUPNP_SEARCH_CRITERIA_PARSER_H__
Packit 712bc5
#define __GUPNP_SEARCH_CRITERIA_PARSER_H__
Packit 712bc5
Packit 712bc5
#include <glib-object.h>
Packit 712bc5
Packit 712bc5
G_BEGIN_DECLS
Packit 712bc5
Packit 712bc5
GType
Packit 712bc5
gupnp_search_criteria_parser_get_type (void) G_GNUC_CONST;
Packit 712bc5
Packit 712bc5
#define GUPNP_TYPE_SEARCH_CRITERIA_PARSER \
Packit 712bc5
                (gupnp_search_criteria_parser_get_type ())
Packit 712bc5
#define GUPNP_SEARCH_CRITERIA_PARSER(obj) \
Packit 712bc5
                (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
Packit 712bc5
                 GUPNP_TYPE_SEARCH_CRITERIA_PARSER, \
Packit 712bc5
                 GUPnPSearchCriteriaParser))
Packit 712bc5
#define GUPNP_SEARCH_CRITERIA_PARSER_CLASS(obj) \
Packit 712bc5
                (G_TYPE_CHECK_CLASS_CAST ((obj), \
Packit 712bc5
                 GUPNP_TYPE_SEARCH_CRITERIA_PARSER, \
Packit 712bc5
                 GUPnPSearchCriteriaParserClass))
Packit 712bc5
#define GUPNP_IS_SEARCH_CRITERIA_PARSER(obj) \
Packit 712bc5
                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
Packit 712bc5
                 GUPNP_TYPE_SEARCH_CRITERIA_PARSER))
Packit 712bc5
#define GUPNP_IS_SEARCH_CRITERIA_PARSER_CLASS(obj) \
Packit 712bc5
                (G_TYPE_CHECK_CLASS_TYPE ((obj), \
Packit 712bc5
                 GUPNP_TYPE_SEARCH_CRITERIA_PARSER))
Packit 712bc5
#define GUPNP_SEARCH_CRITERIA_PARSER_GET_CLASS(obj) \
Packit 712bc5
                (G_TYPE_INSTANCE_GET_CLASS ((obj), \
Packit 712bc5
                 GUPNP_TYPE_SEARCH_CRITERIA_PARSER, \
Packit 712bc5
                 GUPnPSearchCriteriaParserClass))
Packit 712bc5
Packit 712bc5
/**
Packit 712bc5
 * GUPnPSearchCriteriaOp:
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_EQ: '='
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_NEQ: '!='
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_LESS: '<'
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_LEQ: '<='
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_GREATER: '>'
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_GEQ: '>='
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_CONTAINS: 'contains'
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN: 'doesNotContain'
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM: 'derivedFrom'
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_OP_EXISTS: 'exists'
Packit 712bc5
 *
Packit 712bc5
 * The possible operators in SearchCriteria strings.
Packit 712bc5
 *
Packit 712bc5
 **/
Packit 712bc5
typedef enum {
Packit 712bc5
        /* G_TYPE_STRING */
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_EQ               = G_TOKEN_LAST + 1,
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_NEQ              = G_TOKEN_LAST + 2,
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_LESS             = G_TOKEN_LAST + 3,
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_LEQ              = G_TOKEN_LAST + 4,
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_GREATER          = G_TOKEN_LAST + 5,
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_GEQ              = G_TOKEN_LAST + 6,
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_CONTAINS         = G_TOKEN_LAST + 7,
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_DOES_NOT_CONTAIN = G_TOKEN_LAST + 8,
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_DERIVED_FROM     = G_TOKEN_LAST + 9,
Packit 712bc5
Packit 712bc5
        /* G_TYPE_BOOLEAN */
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_OP_EXISTS           = G_TOKEN_LAST + 10
Packit 712bc5
} GUPnPSearchCriteriaOp;
Packit 712bc5
Packit 712bc5
GType
Packit 712bc5
gupnp_search_criteria_op_get_type (void) G_GNUC_CONST;
Packit 712bc5
Packit 712bc5
#define GUPNP_TYPE_SEARCH_CRITERIA_OP (gupnp_search_criteria_op_get_type ())
Packit 712bc5
Packit 712bc5
#define GUPNP_SEARCH_CRITERIA_PARSER_ERROR \
Packit 712bc5
                (gupnp_search_criteria_parser_error_quark ())
Packit 712bc5
Packit 712bc5
GQuark
Packit 712bc5
gupnp_search_criteria_parser_error_quark (void);
Packit 712bc5
Packit 712bc5
/**
Packit 712bc5
 * GUPnPSearchCriteriaParserError:
Packit 712bc5
 * @GUPNP_SEARCH_CRITERIA_PARSER_ERROR_FAILED: Parsing the search criteria
Packit 712bc5
 * failed.
Packit 712bc5
 **/
Packit 712bc5
typedef enum {
Packit 712bc5
        GUPNP_SEARCH_CRITERIA_PARSER_ERROR_FAILED
Packit 712bc5
} GUPnPSearchCriteriaParserError;
Packit 712bc5
Packit 712bc5
typedef struct _GUPnPSearchCriteriaParserPrivate
Packit 712bc5
                GUPnPSearchCriteriaParserPrivate;
Packit 712bc5
Packit 712bc5
typedef struct {
Packit 712bc5
        GObject parent;
Packit 712bc5
Packit 712bc5
        GUPnPSearchCriteriaParserPrivate *priv;
Packit 712bc5
} GUPnPSearchCriteriaParser;
Packit 712bc5
Packit 712bc5
typedef struct {
Packit 712bc5
        GObjectClass parent_class;
Packit 712bc5
Packit 712bc5
        /* signals */
Packit 712bc5
        void     (* begin_parens) (GUPnPSearchCriteriaParser  *parser);
Packit 712bc5
        void     (* end_parens)   (GUPnPSearchCriteriaParser  *parser);
Packit 712bc5
        void     (* conjunction)  (GUPnPSearchCriteriaParser  *parser);
Packit 712bc5
        void     (* disjunction)  (GUPnPSearchCriteriaParser  *parser);
Packit 712bc5
        gboolean (* expression)   (GUPnPSearchCriteriaParser  *parser,
Packit 712bc5
                                   const char                 *property,
Packit 712bc5
                                   GUPnPSearchCriteriaOp       op,
Packit 712bc5
                                   const char                 *value,
Packit 712bc5
                                   GError                    **error);
Packit 712bc5
Packit 712bc5
        /* future padding */
Packit 712bc5
        void (* _gupnp_reserved1) (void);
Packit 712bc5
        void (* _gupnp_reserved2) (void);
Packit 712bc5
        void (* _gupnp_reserved3) (void);
Packit 712bc5
        void (* _gupnp_reserved4) (void);
Packit 712bc5
} GUPnPSearchCriteriaParserClass;
Packit 712bc5
Packit 712bc5
GUPnPSearchCriteriaParser *
Packit 712bc5
gupnp_search_criteria_parser_new        (void);
Packit 712bc5
Packit 712bc5
gboolean
Packit 712bc5
gupnp_search_criteria_parser_parse_text (GUPnPSearchCriteriaParser *parser,
Packit 712bc5
                                         const char                *text,
Packit 712bc5
                                         GError                   **error);
Packit 712bc5
Packit 712bc5
G_END_DECLS
Packit 712bc5
Packit 712bc5
#endif /* __GUPNP_SEARCH_CRITERIA_PARSER_H__ */