#define CQL_H_INCLUDED
#include <stdio.h>
#include <yaz/nmem.h>
+#include <yaz/wrbuf.h>
YAZ_BEGIN_CDECL
YAZ_EXPORT
void cql_transform_close(cql_transform_t ct);
-/** \brief tranforms PQF given a CQL tree
+/** \brief tranforms PQF given a CQL tree (NOT re-entrant)
\param ct CQL transform handle
\param cn CQL node tree
\param pr print function
void (*pr)(const char *buf, void *client_data),
void *client_data);
-/** \brief transforms PQF given a CQL tree (from FILE)
+/** \brief tranforms PQF given a CQL tree (re-entrant)
+ \param ct CQL transform handle
+ \param cn CQL node tree
+ \param addinfo additional information (if error)
+ \param pr print function
+ \param client_data data to be passed to pr
+ \retval 0 success
+ \retval != 0 error code
+
+ The result is written to a user-defined stream.
+*/
+int cql_transform_r(cql_transform_t ct, struct cql_node *cn,
+ WRBUF addinfo,
+ void (*pr)(const char *buf, void *client_data),
+ void *client_data);
+
+/** \brief transforms PQF given a CQL tree from FILE (not re-entrant)
\param ct CQL transform handle
\param cn CQL tree
\param f FILE where output is written
int cql_transform_FILE(cql_transform_t ct,
struct cql_node *cn, FILE *f);
-/** \brief transforms PQF given a CQL tree (from FILE)
+/** \brief transforms PQF given a CQL tree from buffer (not re-entrant)
\param ct CQL transform handle
\param cn CQL tree
\param out buffer for output