00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00066 #ifndef QOF_CLASS_H
00067 #define QOF_CLASS_H
00068
00069 #include "qofid.h"
00070
00071 #define QOF_MOD_CLASS "qof-class"
00072
00082 #define QOF_TYPE_STRING "string"
00083 #define QOF_TYPE_TIME "time"
00084 #define QOF_TYPE_NUMERIC "numeric"
00085 #define QOF_TYPE_DEBCRED "debcred"
00086 #define QOF_TYPE_GUID "guid"
00087 #define QOF_TYPE_INT32 "gint32"
00088 #define QOF_TYPE_INT64 "gint64"
00089 #define QOF_TYPE_DOUBLE "double"
00090 #define QOF_TYPE_BOOLEAN "boolean"
00091 #define QOF_TYPE_KVP "kvp"
00092 #define QOF_TYPE_CHAR "character"
00093 #define QOF_TYPE_COLLECT "collection"
00123 typedef const gchar *QofType;
00124
00125 typedef struct _QofParam QofParam;
00126
00142 typedef gpointer (*QofAccessFunc) (gpointer object, const QofParam * param);
00143
00149 typedef void (*QofSetterFunc) (gpointer, gpointer);
00150
00168 struct _QofParam
00169 {
00170 const gchar *param_name;
00171 QofType param_type;
00172 QofAccessFunc param_getfcn;
00173 QofSetterFunc param_setfcn;
00174 gpointer param_userdata;
00175 };
00176
00178 typedef
00179 gint (*QofSortFunc) (gconstpointer, gconstpointer);
00180
00194 void qof_class_register (QofIdTypeConst obj_name,
00195 QofSortFunc default_sort_fcn,
00196 const QofParam * params);
00197
00220 gboolean
00221 qof_class_is_registered (QofIdTypeConst obj_name);
00222
00224 QofType
00225 qof_class_get_parameter_type (QofIdTypeConst obj_name,
00226 const gchar *param_name);
00227
00229 const QofParam *
00230 qof_class_get_parameter (QofIdTypeConst obj_name,
00231 const gchar *parameter);
00232
00234 QofAccessFunc
00235 qof_class_get_parameter_getter (QofIdTypeConst obj_name,
00236 const gchar *parameter);
00237
00239 QofSetterFunc
00240 qof_class_get_parameter_setter (QofIdTypeConst obj_name,
00241 const gchar *parameter);
00242
00244 typedef void (*QofClassForeachCB) (QofIdTypeConst, gpointer);
00245
00249 void
00250 qof_class_foreach (QofClassForeachCB, gpointer user_data);
00251
00253 typedef void (*QofParamForeachCB) (QofParam *, gpointer user_data);
00254
00258 void
00259 qof_class_param_foreach (QofIdTypeConst obj_name,
00260 QofParamForeachCB, gpointer user_data);
00261
00268 GList *
00269 qof_class_get_referenceList (QofIdTypeConst type);
00270
00271 #endif
00272