commit-gnue
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]