;;;-*- Mode: Lisp; Package: XLE -*- (in-package :XLE) #|| /* (c) 1996-2001 by the Xerox Corporation. All rights reserved */ #ifndef RELATIONS_FUNC_H #define RELATIONS_FUNC_H int add_relation(Graph*, AVPair*, RelID, TypedValue, Clause*, CVProps); CVPair *add_inert_relation(Graph *graph, AVPair *avp, RelID rel_id, void *value, ValueType type, Clause *context, CVProps props); RVPair* get_relation(RVPair*, RelID); RVPair *create_new_rvpair(Graph *, AVPair *, RelID); ||# ;; CVPair* get_relation_values(AVPair *avp, RelID rel_id) ; (define-foreign-function "get_relation_values" ((avp :unsigned-long) (rel-id :int) ) CVPair ;;:unsigned-long :lisp-name get_relation_values :module +xle-module-path+) #|| void assert_relation(Graph*, RelID, TypedValue, TypedValue, Clause*, CVProps); void assert_unknown_attr(Graph *graph, TypedValue pcase, AVPair *avp, AVPair *dummy, Clause *context, CVProps props); void assert_cat_inverse(Graph *graph, char* catname); int get_next_rel_user_id(); void install_relations(); void install_restriction() ; ||# ;; ValueType tuple_type(TypedValue tuple, int index) ; (define-foreign-function "tuple_type" ((tuple TypedValue) (index :int) ) :int :lisp-name tuple-type :module +xle-module-path+) ;; void *tuple_value(TypedValue tuple, int index) ; (define-foreign-function "tuple_value" ((tuple TypedValue) (index :int) ) :unsigned-long :lisp-name tuple-value :module +xle-module-path+) #|| /* ---------------------------------------------- */ /* Functions relationed to sets and set elements. */ /* ---------------------------------------------- */ void assert_has_element(Graph *graph, TypedValue arg1, TypedValue arg2, void *gensym, Clause *context, CVProps props); void distribute_relation_to_elements(Graph *graph, AVPair *avp, RelID rel, CVPair *cvp); ||# ;; ValueType set_element_type(TypedValue tuple) ; (define-foreign-function "set_element_type_by_reference" ((tuple :unsigned-long) ) :int :lisp-name set_element_type :module +xle-module-path+) ;; void *set_element_value(TypedValue tuple) ; (define-foreign-function "set_element_value_by_reference" ((tuple :unsigned-long) ) :unsigned-long :lisp-name set_element_value :module +xle-module-path+) ;; AVPair *set_element(TypedValue tuple); (define-foreign-function "set_element_by_reference" ((tuple :unsigned-long) ) :unsigned-long :lisp-name set_element :module +xle-module-path+) ;; void *set_element_gensym(TypedValue tuple); (define-foreign-function "set_element_gensym_by_reference" ((tuple :unsigned-long) ) :unsigned-long :lisp-name set_element_gensym :module +xle-module-path+) ;; void replace_set_element(TypedValue tuple, ValueType type, void *value) ; (define-foreign-function "replace_set_element_by_reference" ((tuple TypedValue) (type :int) (value :unsigned-long) ) #+allegro :void #+sbcl ffc::void :lisp-name replace_set_element :module +xle-module-path+) ;; #endif :eof