/* * $Id: subject.c,v 1.3 2004/12/11 17:08:13 jan Exp $ * * Copyright (c) 2002 Jan Algermissen * See the file "COPYING" for copying permission. * */ #include "tmsubject.h" #include "tmtrace.h" #include "tmassert.h" int tm_subject_get_value(TMSubject self,const char *propname, void **value) { int i; TM_ENTER; assert(self); assert(propname); for(i=0;iN;i++) { assert(self->props[i].prop); if(strcmp(self->props[i].prop->fullname,propname) == 0) { if(value) *value = self->props[i].value; TM_RETURN(1); } } TM_RETURN(0); } int tm_subject_replace_value(TMSubject self,const char *propname, void *value, int vflags) { int i; assert(self); assert(propname); for(i=0;iN;i++) { assert(self->props[i].prop); if(strcmp(self->props[i].prop->fullname,propname) == 0) { self->props[i].value = value; self->props[i].vflags = vflags; TM_RETURN(1); } } TM_RETURN(0); } void tm_subject_free_values(TMPool pool,TMSubject sbj) { int i; for(i=0;iN;i++) { assert(sbj->props[i].vflags == 0); /* need to pass these to delete! */ tm_value_delete(pool,sbj->props[i].prop->value_type, &(sbj->props[i].value)); } }