📄 mal_properties.c
字号:
#line 329 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"#include "mal_config.h"#include "mal_properties.h"#include "mal_type.h" /* for idcmp() */PropertySetnewPropertySet(){ PropertySet ps; ps = (PropertySet) GDKzalloc(sizeof(struct PROPSET)); ps->refcount = 0; ps->maxlist = MAXPROPLIST; return ps;}PropertycpyProperty(PropertySet * target, Property src){ if (*target == 0) *target = newPropertySet(); return setProperty(*target, src->nme, src->operator, src->val.vtype, VALptr(&src->val));}PropertySetcpyPropertySet(PropertySet old){ PropertySet ps; Property pr; int i; ps = newPropertySet(); for(i=0; i< MAXPROPLIST; i++){ pr = old->prop[i]; while(pr){ cpyProperty(&ps, pr); pr= pr->nxt; } } return ps;}voidfreePropertySet(PropertySet ps){ Property p1, p2; int i; for (i = 0; i < MAXPROPLIST; i++) { p1 = ps->prop[i]; while(p1){ p2 = p1->nxt; GDKfree(p1); p1= p2; } } GDKfree(ps);}PropertyfndProperty(PropertySet ps, str nme){ Property pr; int i; if (ps == NULL || nme== NULL) return NULL; nme= getName(nme,strlen(nme)); for (i = 0; i < MAXPROPLIST; i++) { pr = ps->prop[i]; while (pr) { if (pr->nme== nme) return pr; pr = pr->nxt; } } return 0;}PropertyfndPropertyIndexed(PropertySet ps, int first, int last, str nme){ Property pr; int i; if (ps == NULL) return NULL; nme= getName(nme,strlen(nme)); for (i = first; i < last; i++) { pr = ps->prop[i]; while (pr) { if (pr->nme== nme) return pr; pr = pr->nxt; } } return 0;}intisPropertyDefined(PropertySet ps, str nme){ Property pr; if( ps == NULL || nme== NULL) return FALSE; pr = fndProperty(ps,nme); return pr != NULL;}#line 438 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"PropertysetPropertyIndexed(PropertySet ps, int idx, str nme, str op, int tpe, ptr val){ Property pr; pr = fndPropertyIndexed(ps, idx, idx + 1, nme); if (pr == 0) { pr = (Property) GDKmalloc(sizeof(struct PROPrecord)); pr->nxt = ps->prop[idx]; ps->prop[idx] = pr; pr->nme = putName(nme,strlen(nme)); } if (val) VALset(&pr->val, tpe, val); pr->operator= putName(op,strlen(op)); return pr;}PropertysetProperty(PropertySet ps, str nme, str op, int tpe, ptr val){ return setPropertyIndexed(ps, 0, nme, op, tpe, val);}#line 466 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"ptrgetPropertyValue(PropertySet ps, str nme){ Property pr; pr = fndProperty(ps, nme); if (pr) return VALptr(&pr->val); return NULL;}intgetPropertyType(PropertySet ps, str nme){ Property pr; pr = fndProperty(ps, nme); if (pr) return pr->val.vtype; return TYPE_void;}#line 492 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"strpropertySet2str(PropertySet ps){ char buf[128 * 1024]; str s = buf, t = 0; Property pr; int i,first=0; if (ps == NULL ) return GDKstrdup(""); pr = ps->prop[0]; *s++ = '{'; for(i=0; i<MAXPROPLIST; i++){ pr = ps->prop[i]; while(pr){ t = 0; if (first++ ) *s++ = ','; ATOMformat(pr->val.vtype, VALget(&pr->val), &t); if (pr->operator && * pr->operator) sprintf(s, "%s%s%s", pr->nme, pr->operator, t); else sprintf(s, "%s", pr->nme); while (*s) s++; pr= pr->nxt; if (t) GDKfree(t); } } *s++ = '}'; *s = 0; return GDKstrdup(buf);}#line 528 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_properties.mx"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -