[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue/geas/src/classdef classdef.c classdef.h
From: |
Reinhard Mueller |
Subject: |
gnue/geas/src/classdef classdef.c classdef.h |
Date: |
Sat, 15 Dec 2001 04:54:35 -0500 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Reinhard Mueller <address@hidden> 01/12/15 04:54:35
Modified files:
geas/src/classdef: classdef.c classdef.h
Log message:
Create internal classes.
Added function to get the name of a datatype.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/classdef/classdef.c.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/geas/src/classdef/classdef.h.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
Patches:
Index: gnue/geas/src/classdef/classdef.c
diff -c gnue/geas/src/classdef/classdef.c:1.27
gnue/geas/src/classdef/classdef.c:1.28
*** gnue/geas/src/classdef/classdef.c:1.27 Fri Dec 14 17:59:53 2001
--- gnue/geas/src/classdef/classdef.c Sat Dec 15 04:54:35 2001
***************
*** 19,25 ****
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: classdef.c,v 1.27 2001/12/14 22:59:53 reinhard Exp $
*/
#include "config.h"
--- 19,25 ----
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: classdef.c,v 1.28 2001/12/15 09:54:35 reinhard Exp $
*/
#include "config.h"
***************
*** 147,152 ****
--- 147,154 ----
geas_cd_init (void)
{
geas_cd_module *builtin;
+ geas_cd_class *c;
+ geas_cd_field *f;
_modules = g_hash_table_new (g_str_hash, g_str_equal);
***************
*** 168,174 ****
geas_cd_module_type_new (builtin, "int", GEAS_CD_DATATYPE_INT32);
geas_cd_module_type_new (builtin, "boolean", GEAS_CD_DATATYPE_BOOL);
! /* create "geas" module for internal fields */
_geas_module = geas_cd_module_new ("geas");
#define NEWTYPE(n,t) \
--- 170,176 ----
geas_cd_module_type_new (builtin, "int", GEAS_CD_DATATYPE_INT32);
geas_cd_module_type_new (builtin, "boolean", GEAS_CD_DATATYPE_BOOL);
! /* create "geas" module for internal classes and fields */
_geas_module = geas_cd_module_new ("geas");
#define NEWTYPE(n,t) \
***************
*** 178,183 ****
--- 180,258 ----
_datetime_type = NEWTYPE ("datetime", GEAS_CD_DATATYPE_DATETIME);
#undef NEWTYPE
geas_cd_type_set_format (_username_type, 16);
+
+ /* create internal classes */
+ /* TODO: most of these should become obsolete */
+
+ /* class geas::user */
+ c = geas_cd_module_class_new (_geas_module, "user");
+ f = geas_cd_class_field_new (c, _geas_module, "username",
+ geas_cd_module_find_type (builtin, "char"));
+ geas_cd_field_set_format (f, 32);
+ f = geas_cd_class_field_new (c, _geas_module, "password",
+ geas_cd_module_find_type (builtin, "char"));
+ geas_cd_field_set_format (f, 32);
+ f = geas_cd_class_field_new (c, _geas_module,
"_currenttransaction",_id_type);
+
+ /* class geas::transaction */
+ c = geas_cd_module_class_new (_geas_module, "transaction");
+ f = geas_cd_class_field_new (c, _geas_module, "_user", _id_type);
+ f = geas_cd_class_field_new (c, _geas_module, "open",
+ geas_cd_module_find_type (builtin, "bool"));
+
+ /* class geas::listitem */
+ c = geas_cd_module_class_new (_geas_module, "listitem");
+ f = geas_cd_class_field_new (c, _geas_module, "position",
+ geas_cd_module_find_type (builtin, "int16"));
+ f = geas_cd_class_field_new (c, _geas_module, "listid", _id_type);
+ f = geas_cd_class_field_new (c, _geas_module, "reference", _id_type);
+
+ /* class geas::listholder */
+ c = geas_cd_module_class_new (_geas_module, "listholder");
+ f = geas_cd_class_field_new (c, _geas_module, "length",
+ geas_cd_module_find_type (builtin, "int16"));
+ f = geas_cd_class_field_new (c, _geas_module, "classname",
+ geas_cd_module_find_type (builtin, "text"));
+
+ /* class geas::searchcriteria */
+ c = geas_cd_module_class_new (_geas_module, "searchcriteria");
+ f = geas_cd_class_field_new (c, _geas_module, "parent", _id_type);
+ geas_cd_field_set_default (f, "");
+ f = geas_cd_class_field_new (c, _geas_module, "classname",
+ geas_cd_module_find_type (builtin, "char"));
+ geas_cd_field_set_format (f, 128);
+ geas_cd_field_set_default (f, "unknown");
+ f = geas_cd_class_field_new (c, _geas_module, "orderby",
+ geas_cd_module_find_type (builtin, "char"));
+ geas_cd_field_set_format (f, 128);
+ geas_cd_field_set_default (f, "");
+ f = geas_cd_class_field_new (c, _geas_module, "reverse",
+ geas_cd_module_find_type (builtin, "bool"));
+ geas_cd_field_set_default (f, "FALSE");
+ f = geas_cd_class_field_new (c, _geas_module, "logic",
+ geas_cd_module_find_type (builtin, "int16"));
+ geas_cd_field_set_default (f, "1");
+
+ /* class geas::searchfield */
+ c = geas_cd_module_class_new (_geas_module, "searchfield");
+ f = geas_cd_class_field_new (c, _geas_module, "invert",
+ geas_cd_module_find_type (builtin, "bool"));
+ geas_cd_field_set_default (f, "FALSE");
+ f = geas_cd_class_field_new (c, _geas_module, "casesensitive",
+ geas_cd_module_find_type (builtin, "bool"));
+ geas_cd_field_set_default (f, "FALSE");
+ f = geas_cd_class_field_new (c, _geas_module, "test",
+ geas_cd_module_find_type (builtin, "int16"));
+ geas_cd_field_set_default (f, "1");
+ f = geas_cd_class_field_new (c, _geas_module, "field",
+ geas_cd_module_find_type (builtin, "char"));
+ geas_cd_field_set_format (f, 128);
+ geas_cd_field_set_default (f, "");
+ f = geas_cd_class_field_new (c, _geas_module, "value",
+ geas_cd_module_find_type (builtin, "char"));
+ geas_cd_field_set_format (f, 128);
+ geas_cd_field_set_default (f, "");
+ f = geas_cd_class_field_new (c, _geas_module, "constraint", _id_type);
}
/* -------------------------------------------------------------------------
*\
***************
*** 193,198 ****
--- 268,319 ----
}
/* =========================================================================
*\
+ * Datatypes
+ \* =========================================================================
*/
+
+ /* -------------------------------------------------------------------------
*\
+ * Get the name of a datatype
+ \* -------------------------------------------------------------------------
*/
+ const char *
+ geas_cd_datatype_name (geas_cd_datatype dt)
+ {
+ switch (dt)
+ case GEAS_CD_DATATYPE_UNKNOWN:
+ return ("unknown");
+ case GEAS_CD_DATATYPE_ID:
+ return ("id");
+ case GEAS_CD_DATATYPE_CHAR:
+ return ("char");
+ case GEAS_CD_DATATYPE_TEXT:
+ return ("text");
+ case GEAS_CD_DATATYPE_INT16:
+ return ("int16");
+ case GEAS_CD_DATATYPE_INT32:
+ return ("int32");
+ case GEAS_CD_DATATYPE_INT64:
+ return ("int64");
+ case GEAS_CD_DATATYPE_FLOAT:
+ return ("float");
+ case GEAS_CD_DATATYPE_BOOL:
+ return ("bool");
+ case GEAS_CD_DATATYPE_DATE:
+ return ("date");
+ case GEAS_CD_DATATYPE_TIME:
+ return ("time");
+ case GEAS_CD_DATATYPE_DATETIME:
+ return ("datetime");
+ case GEAS_CD_DATATYPE_REFERENCE:
+ return ("reference");
+ case GEAS_CD_DATATYPE_LIST:
+ return ("list");
+ case GEAS_CD_DATATYPE_COMPOUND:
+ return ("compound");
+ default:
+ return ("invalid");
+ }
+ }
+
+ /* =========================================================================
*\
* Modules
\* =========================================================================
*/
***************
*** 271,290 ****
g_hash_table_insert (m->classes, c->name, c);
/* Create the automatic fields */
! f = geas_cd_class_field_new (c, _geas_module, "id", _id_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_INTERNAL);
! f = geas_cd_class_field_new (c, _geas_module, "cre_user",
_username_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
! f = geas_cd_class_field_new (c, _geas_module, "cre_time",
_datetime_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
! f = geas_cd_class_field_new (c, _geas_module, "mod_user",
_username_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
! f = geas_cd_class_field_new (c, _geas_module, "mod_time",
_datetime_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
}
--- 392,412 ----
g_hash_table_insert (m->classes, c->name, c);
/* Create the automatic fields */
! /* FIXME: remove sys_ when fields are prefixed with module */
! f = geas_cd_class_field_new (c, _geas_module, "sys_id", _id_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_INTERNAL);
! f = geas_cd_class_field_new (c, _geas_module, "sys_cre_user",
_username_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
! f = geas_cd_class_field_new (c, _geas_module, "sys_cre_time",
_datetime_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
! f = geas_cd_class_field_new (c, _geas_module, "sys_mod_user",
_username_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
! f = geas_cd_class_field_new (c, _geas_module, "sys_mod_time",
_datetime_type);
geas_cd_field_prop_set (f, GEAS_CD_FPROP_NOTNULL);
}
***************
*** 656,670 ****
f = _create_field (&(c->fields), c, m, g_strdup (name), type->datatype);
/* FIXME: for compatibility with old parser */
! if (!strcmp (m->name, "geas"))
! {
! f->name_db = g_strconcat ("sys_", name, NULL);
! }
! else
! {
! f->name_db = g_strdup (name);
! /* FIXME: f->name_db = g_strconcat (m->name, "__", name, NULL); */
! }
f->type = type;
f->format = type->format;
f->otherclass = type->otherclass;
--- 778,785 ----
f = _create_field (&(c->fields), c, m, g_strdup (name), type->datatype);
/* FIXME: for compatibility with old parser */
! f->name_db = g_strdup (name);
! /* f->name_db = g_strconcat (m->name, "__", name, NULL); */
f->type = type;
f->format = type->format;
f->otherclass = type->otherclass;
Index: gnue/geas/src/classdef/classdef.h
diff -c gnue/geas/src/classdef/classdef.h:1.25
gnue/geas/src/classdef/classdef.h:1.26
*** gnue/geas/src/classdef/classdef.h:1.25 Fri Dec 14 16:49:19 2001
--- gnue/geas/src/classdef/classdef.h Sat Dec 15 04:54:35 2001
***************
*** 19,25 ****
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: classdef.h,v 1.25 2001/12/14 21:49:19 reinhard Exp $
*/
#ifndef _CLASSDEF_H
--- 19,25 ----
along with GEAS; if not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
! $Id: classdef.h,v 1.26 2001/12/15 09:54:35 reinhard Exp $
*/
#ifndef _CLASSDEF_H
***************
*** 62,67 ****
--- 62,73 ----
void geas_cd_init (void);
void geas_cd_clean (void);
+
+ /* -------------------------------------------------------------------------
*\
+ * Datatypes
+ \* -------------------------------------------------------------------------
*/
+
+ const char *geas_cd_datatype_name (geas_cd_datatype dt);
/* -------------------------------------------------------------------------
*\
* Modules
- gnue/geas/src/classdef classdef.c classdef.h,
Reinhard Mueller <=