;; (C) 2000-2002 Jörg F. Wittenberger see http://www.askemos.org ;; Macros removed from place module. ;;* Properties (define-macro (property name value) `(cons ,name ,value)) (define-macro (property? x) `(pair? ,x)) ;;* Aggregates (define-macro (aggregate? x) `(pair? ,x)) (define-macro (aggregate meta data) `(cons ,meta ,data)) (define-macro (aggregate-meta aggregate) `(car ,aggregate)) (define-macro (aggregate-entity aggregate) `(cdr ,aggregate)) (define-macro (set-aggregate-entity! aggregate value) `(set-cdr! ,aggregate ,value)) (define-macro (set-aggregate-meta! aggregate value) `(set-car! ,aggregate ,value)) (define-macro (aggregate-associate aggreg property) `(aggregate (properties-set (aggregate-meta ,aggreg) ,property) (aggregate-entity ,aggreg))) (define-macro (set-slot! frame slot value) (cond ((equal? slot ''version) `(set-frame-version! ,frame ,value)) ((equal? slot ''replicates) `(set-frame-replicates! ,frame ,value)) ((equal? slot ''proposal) `(set-frame-proposal! ,frame ,value)) ((equal? slot ''mind-links) `(set-frame-links! ,frame ,value)) ((equal? slot ''content-type) `(set-frame-content-type! ,frame ,value)) ((equal? slot ''mind-body) `(set-frame-body/plain! ,frame ,value)) ((equal? slot ''body/parsed-xml) `(set-frame-body/xml! ,frame ,value)) (else `(%set-slot! ,frame ,slot ,value)))) (define-macro (get-slot frame slot) (cond ((equal? slot ''version) `(frame-version ,frame)) ((equal? slot ''replicates) `(frame-replicates ,frame)) ((equal? slot ''proposal) `(frame-proposal ,frame)) ((equal? slot ''mind-links) `(frame-links ,frame)) ((equal? slot ''content-type) (list 'frame-content-type frame)) ((equal? slot ''mind-body) `(frame-body/plain ,frame)) ((equal? slot ''body/parsed-xml) `(frame-body/xml ,frame)) (else `(%get-slot ,frame ,slot)))) (define-macro (logagree fmt . rest) `(and $agree-verbose (logerr ,fmt . ,rest)))