mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-25 18:30:23 -06:00
150 lines
4.2 KiB
C
150 lines
4.2 KiB
C
/********************************************************************\
|
|
* qofquerycore-p.h -- Private API for providing core Query data types *
|
|
* Copyright (C) 2002 Derek Atkins <warlord@MIT.EDU> *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or *
|
|
* modify it under the terms of the GNU General Public License as *
|
|
* published by the Free Software Foundation; either version 2 of *
|
|
* the License, or (at your option) any later version. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, *
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
* GNU General Public License for more details. *
|
|
* *
|
|
* You should have received a copy of the GNU General Public License*
|
|
* along with this program; if not, contact: *
|
|
* *
|
|
* Free Software Foundation Voice: +1-617-542-5942 *
|
|
* 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652 *
|
|
* Boston, MA 02110-1301, USA gnu@gnu.org *
|
|
* *
|
|
\********************************************************************/
|
|
|
|
#ifndef QOF_QUERYCOREP_H
|
|
#define QOF_QUERYCOREP_H
|
|
|
|
#include <sys/types.h>
|
|
#include <time.h>
|
|
#include <regex.h>
|
|
#include <string.h>
|
|
|
|
#include "qofquerycore.h"
|
|
|
|
/* Initialize the Query Core registry and install the default type handlers */
|
|
void qof_query_core_init(void);
|
|
void qof_query_core_shutdown (void);
|
|
|
|
/*
|
|
* An arbitrary Query Predicate. Given the object and the
|
|
* particular parameter get-function (obtained from the registry by
|
|
* the Query internals), compare the object's parameter to the
|
|
* predicate data.
|
|
*/
|
|
typedef gint (*QofQueryPredicateFunc) (gpointer object,
|
|
QofParam *getter,
|
|
QofQueryPredData *pdata);
|
|
|
|
/* Lookup functions */
|
|
QofQueryPredicateFunc qof_query_core_get_predicate (gchar const *type);
|
|
QofCompareFunc qof_query_core_get_compare (gchar const *type);
|
|
|
|
/* Compare two predicates */
|
|
gboolean qof_query_core_predicate_equal (const QofQueryPredData *p1, const QofQueryPredData *p2);
|
|
|
|
/* Predicate Data Structures:
|
|
*
|
|
* These are defined such that you can cast between these types and
|
|
* a QofQueryPredData.
|
|
*
|
|
* Note that these are provided for READ ONLY PURPOSES. You should NEVER
|
|
* write into these structures, change them, or use them to create a
|
|
* Query.
|
|
*/
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
QofStringMatch options;
|
|
gboolean is_regex;
|
|
gchar * matchstring;
|
|
regex_t compiled;
|
|
} query_string_def, *query_string_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
QofDateMatch options;
|
|
time64 date;
|
|
} query_date_def, *query_date_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
QofNumericMatch options;
|
|
gnc_numeric amount;
|
|
} query_numeric_def, *query_numeric_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
QofGuidMatch options;
|
|
GList * guids;
|
|
} query_guid_def, *query_guid_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
gint32 val;
|
|
} query_int32_def, *query_int32_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
gint64 val;
|
|
} query_int64_def, *query_int64_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
double val;
|
|
} query_double_def, *query_double_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
gboolean val;
|
|
} query_boolean_def, *query_boolean_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
QofCharMatch options;
|
|
gchar * char_list;
|
|
} query_char_def, *query_char_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
GSList * path;
|
|
KvpValue * value;
|
|
} query_kvp_def, *query_kvp_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
QofGuidMatch options;
|
|
QofCollection *coll;
|
|
GList *guids;
|
|
} query_coll_def, *query_coll_t;
|
|
|
|
typedef struct
|
|
{
|
|
QofQueryPredData pd;
|
|
QofGuidMatch options;
|
|
const GncGUID *guid;
|
|
GList * guids;
|
|
} query_choice_def, *query_choice_t;
|
|
|
|
#endif /* QOF_QUERYCOREP_H */
|