Added missing C decl macros for soap.h and srw.h.
[yaz-moved-to-github.git] / include / yaz / ccl.h
index 1fb5503..14c34f3 100644 (file)
@@ -45,7 +45,7 @@
 /*
  * CCL - header file
  *
- * $Id: ccl.h,v 1.12 2002-06-06 13:02:01 adam Exp $
+ * $Id: ccl.h,v 1.15 2003-06-24 23:03:04 adam Exp $
  *
  * Old Europagate Log:
  *
@@ -88,6 +88,7 @@
 #include <yaz/yconfig.h>
 #include <stdio.h>
 #include <yaz/xmalloc.h>
+#include <yaz/wrbuf.h>
 
 YAZ_BEGIN_CDECL
     
@@ -111,7 +112,13 @@ struct ccl_rpn_attr {
     struct ccl_rpn_attr *next;
     char *set;
     int type;
-    int value;
+    int kind;
+#define CCL_RPN_ATTR_NUMERIC 1
+#define CCL_RPN_ATTR_STRING 2
+    union {
+       int numeric;
+       char *str;
+    } value;
 };
 
 #define CCL_RPN_AND 1
@@ -125,7 +132,7 @@ struct ccl_rpn_attr {
 struct ccl_rpn_node {
     int kind;
     union {
-       struct ccl_rpn_node *p[2];
+       struct ccl_rpn_node *p[3];
        struct {
            char *term;
            struct ccl_rpn_attr *attr_list;
@@ -277,7 +284,8 @@ YAZ_EXPORT void ccl_qual_add (CCL_bibset b, const char *name, int no,
                              int *attr);
 
 YAZ_EXPORT void ccl_qual_add_set (CCL_bibset b, const char *name, int no,
-                                 int *attr, char **attsets);
+                                 int *type, int *value, char **svalue,
+                                 char **attsets);
 
 YAZ_EXPORT void ccl_qual_add_special (CCL_bibset bibset,
                                       const char *n, const char *v);
@@ -325,6 +333,8 @@ YAZ_EXPORT char *ccl_strdup (const char *str);
 YAZ_EXPORT const char *ccl_qual_search_special (CCL_bibset b,
                                                const char *name);
 
+YAZ_EXPORT void ccl_pquery (WRBUF w, struct ccl_rpn_node *p);
+
 #ifndef ccl_assert
 #define ccl_assert(x) ;
 #endif