XesamGQueryBuilder

XesamGQueryBuilder — Used to compile a query from the output of a XesamGQueryParser or XesamGUserSearchParser

Synopsis

                    XesamGQueryBuilder;
                    XesamGQueryBuilderIface;
enum                XesamGQueryBuilderError;
gboolean            xesam_g_query_builder_add_clause    (XesamGQueryBuilder *self,
                                                         XesamGQueryToken token,
                                                         const gchar *boost,
                                                         const gboolean *negate,
                                                         const gchar **attr_names,
                                                         const gchar **attr_vals,
                                                         GError **error);
gboolean            xesam_g_query_builder_add_field     (XesamGQueryBuilder *self,
                                                         XesamGQueryToken token,
                                                         const char *name,
                                                         GError **error);
gboolean            xesam_g_query_builder_add_value     (XesamGQueryBuilder *self,
                                                         XesamGQueryToken token,
                                                         const gchar *value,
                                                         const gchar **attr_names,
                                                         const gchar **attr_vals,
                                                         GError **error);
#define             XESAM_G_QUERY_BUILDER_ERROR

Object Hierarchy

  GInterface
   +----XesamGQueryBuilder

Prerequisites

XesamGQueryBuilder requires GObject.

Description

XesamGQueryBuilder is a callback interface invoked from either a XesamGQueryParser or XesamGUserSearchParser. Users familiar with a SAX parser should get the idea. Builders are registered on a parser via the method xesam_g_query_parser_add_builder() or xesam_g_user_search_parser_add_builder().

As the parser scans through the input it will invoke the relevant callbacks on the builder. The callbacks are guaranteed to be invoked in such a way as to produce a relevant query.

It is important to note that this interface does not define any way for consumers to retrieve the compiled query from the builder when the parser is done. Implementors of this interface should add that if needed.

XesamGQueryBuilder is available since 1.0

Details

XesamGQueryBuilder

typedef struct _XesamGQueryBuilder XesamGQueryBuilder;


XesamGQueryBuilderIface

typedef struct {
	GTypeInterface		parent_iface;
	
	gboolean			(*start_query) 				(XesamGQueryBuilder		*self,
													 XesamGQueryToken		token,
													 const gchar			*content_cat,
													 const gchar			*source_cat,
													 GError					**error);
	
	gboolean			(*add_clause)				(XesamGQueryBuilder		*self,
													 XesamGQueryToken		token,
													 const gchar			*boost,
													 const gboolean			*negate,
													 const gchar			**attr_names,
													 const gchar			**attr_vals,
													 GError** error);
	
	gboolean			(*add_field)				(XesamGQueryBuilder		*self,
													 XesamGQueryToken		token,
													 const char				*name,
													 GError					**error);
	
	gboolean			(*add_value)				(XesamGQueryBuilder		*self,
													 XesamGQueryToken		token,
													 const gchar			*value,
													 const gchar			**attr_names,
													 const gchar			**attr_vals,
													 GError					**error);
	
	gboolean			(*close_clause)				(XesamGQueryBuilder		*self,
													 GError					**error);
	
	gboolean			(*close_query)				(XesamGQueryBuilder		*self,
													 GError					**error);
} XesamGQueryBuilderIface;


enum XesamGQueryBuilderError

typedef enum  {
	XESAM_G_QUERY_BUILDER_ERROR_UNKNOWN_FIELD,
	XESAM_G_QUERY_BUILDER_ERROR_INVALID_CLAUSE_ATTRIBUTE,
	XESAM_G_QUERY_BUILDER_ERROR_INVALID_ATTRIBUTE_LIST,
	XESAM_G_QUERY_BUILDER_ERROR_NO_CHILD
} XesamGQueryBuilderError;


xesam_g_query_builder_add_clause ()

gboolean            xesam_g_query_builder_add_clause    (XesamGQueryBuilder *self,
                                                         XesamGQueryToken token,
                                                         const gchar *boost,
                                                         const gboolean *negate,
                                                         const gchar **attr_names,
                                                         const gchar **attr_vals,
                                                         GError **error);

self :

token :

boost :

negate :

attr_names :

attr_vals :

error :

Returns :


xesam_g_query_builder_add_field ()

gboolean            xesam_g_query_builder_add_field     (XesamGQueryBuilder *self,
                                                         XesamGQueryToken token,
                                                         const char *name,
                                                         GError **error);

self :

token :

name :

error :

Returns :


xesam_g_query_builder_add_value ()

gboolean            xesam_g_query_builder_add_value     (XesamGQueryBuilder *self,
                                                         XesamGQueryToken token,
                                                         const gchar *value,
                                                         const gchar **attr_names,
                                                         const gchar **attr_vals,
                                                         GError **error);

self :

token :

value :

attr_names :

attr_vals :

error :

Returns :


XESAM_G_QUERY_BUILDER_ERROR

#define XESAM_G_QUERY_BUILDER_ERROR xesam_g_query_builder_error_quark ()