|
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__ */
|