Rolling.
[ZOOM-Perl-moved-to-github.git] / ZOOM.xs
diff --git a/ZOOM.xs b/ZOOM.xs
index 990f610..2178a23 100644 (file)
--- a/ZOOM.xs
+++ b/ZOOM.xs
@@ -1,4 +1,4 @@
-/* $Id: ZOOM.xs,v 1.16 2005-10-24 16:39:55 mike Exp $ */
+/* $Id: ZOOM.xs,v 1.30 2005-11-15 11:31:52 mike Exp $ */
 
 #include "EXTERN.h"
 #include "perl.h"
@@ -210,16 +210,11 @@ const char *
 ZOOM_diag_str(error)
        int error
 
-# UNTESTED
-int
-ZOOM_connection_last_event(cs)
-       ZOOM_connection cs
-
-# UNTESTED
+# TESTED
 ZOOM_resultset
 ZOOM_connection_search(arg0, q)
        ZOOM_connection arg0
-       ZOOM_query      q
+       ZOOM_query q
 
 # TESTED
 ZOOM_resultset
@@ -232,31 +227,51 @@ void
 ZOOM_resultset_destroy(r)
        ZOOM_resultset r
 
-# UNTESTED
+# TESTED
 const char *
 ZOOM_resultset_option_get(r, key)
-       ZOOM_resultset  r
-       const char *    key
+       ZOOM_resultset r
+       const char* key
 
-# UNTESTED
+# TESTED
 void
 ZOOM_resultset_option_set(r, key, val)
-       ZOOM_resultset  r
-       const char *    key
-       const char *    val
+       ZOOM_resultset r
+       const char* key
+       const char* val
 
 # TESTED
 size_t
 ZOOM_resultset_size(r)
        ZOOM_resultset r
 
-# UNTESTED
-void
-ZOOM_resultset_records(r, recs, start, count)
-       ZOOM_resultset  r
-       ZOOM_record *   recs
-       size_t  start
-       size_t  count
+# TESTED
+SV *
+ZOOM_resultset_records(r, start, count, return_records)
+       ZOOM_resultset r
+       size_t start
+       size_t count
+       int return_records
+       INIT:
+               ZOOM_record *recs = 0;
+       CODE:
+               if (return_records)
+                       recs = (ZOOM_record*) xmalloc(count * sizeof *recs);
+               ZOOM_resultset_records(r, recs, start, count);
+               if (return_records) {
+                       AV *av = newAV();
+                       int i;
+                       for (i = 0; i < count; i++) {
+                               SV *tmp = newSV(0);
+                               sv_setref_pv(tmp, "ZOOM_record", (void*) recs[i]);
+                               av_push(av, tmp);
+                       }
+                       RETVAL = newRV((SV*) av);
+               } else {
+                       RETVAL = &PL_sv_undef;
+               }
+       OUTPUT:
+               RETVAL
 
 # TESTED
 ZOOM_record
@@ -264,16 +279,30 @@ ZOOM_resultset_record(s, pos)
        ZOOM_resultset s
        size_t pos
 
-# UNTESTED
+# TESTED
 ZOOM_record
 ZOOM_resultset_record_immediate(s, pos)
-       ZOOM_resultset  s
-       size_t  pos
+       ZOOM_resultset s
+       size_t pos
 
-# UNTESTED
+# TESTED
 void
 ZOOM_resultset_cache_reset(r)
-       ZOOM_resultset  r
+       ZOOM_resultset r
+
+# TESTED (but deprecated)
+void
+ZOOM_resultset_sort(r, sort_type, sort_spec)
+       ZOOM_resultset r
+       const char* sort_type
+       const char* sort_spec
+
+# TESTED
+int
+ZOOM_resultset_sort1(r, sort_type, sort_spec)
+       ZOOM_resultset r
+       const char* sort_type
+       const char* sort_spec
 
 # See "typemap" for discussion of the "const char *" return-type.
 #
@@ -288,125 +317,96 @@ ZOOM_record_get(rec, type, len)
                RETVAL
                len
 
-# UNTESTED
+# TESTED
 void
 ZOOM_record_destroy(rec)
-       ZOOM_record     rec
+       ZOOM_record rec
 
-# UNTESTED
+# TESTED
 ZOOM_record
 ZOOM_record_clone(srec)
-       ZOOM_record     srec
+       ZOOM_record srec
 
-# UNTESTED
+# TESTED
 ZOOM_query
 ZOOM_query_create()
 
-# UNTESTED
+# TESTED
 void
 ZOOM_query_destroy(s)
-       ZOOM_query      s
+       ZOOM_query s
 
-# UNTESTED
+# TESTED
 int
 ZOOM_query_cql(s, str)
-       ZOOM_query      s
-       const char *    str
+       ZOOM_query s
+       const char* str
 
-# UNTESTED
+# TESTED
 int
 ZOOM_query_prefix(s, str)
-       ZOOM_query      s
-       const char *    str
+       ZOOM_query s
+       const char* str
 
-# UNTESTED
+# TESTED
 int
 ZOOM_query_sortby(s, criteria)
        ZOOM_query      s
        const char *    criteria
 
-# UNTESTED
+# TESTED
 ZOOM_scanset
 ZOOM_connection_scan(c, startterm)
-       ZOOM_connection c
-       const char *    startterm
+       ZOOM_connection c
+       const char* startterm
 
-# UNTESTED
+# TESTED
 const char *
 ZOOM_scanset_term(scan, pos, occ, len)
-       ZOOM_scanset    scan
-       size_t  pos
-       int *   occ
-       int *   len
+       ZOOM_scanset scan
+       size_t pos
+       int& occ
+       int& len
+       OUTPUT:
+               RETVAL
+               occ
+               len
 
-# UNTESTED
+# TESTED
 const char *
 ZOOM_scanset_display_term(scan, pos, occ, len)
-       ZOOM_scanset    scan
-       size_t  pos
-       int *   occ
-       int *   len
+       ZOOM_scanset scan
+       size_t pos
+       int& occ
+       int& len
+       OUTPUT:
+               RETVAL
+               occ
+               len
 
-# UNTESTED
+# TESTED
 size_t
 ZOOM_scanset_size(scan)
-       ZOOM_scanset    scan
+       ZOOM_scanset scan
 
-# UNTESTED
+# TESTED
 void
 ZOOM_scanset_destroy(scan)
-       ZOOM_scanset    scan
+       ZOOM_scanset scan
 
-# UNTESTED
+# TESTED
 const char *
 ZOOM_scanset_option_get(scan, key)
        ZOOM_scanset    scan
        const char *    key
 
-# UNTESTED
+# TESTED
 void
 ZOOM_scanset_option_set(scan, key, val)
        ZOOM_scanset    scan
        const char *    key
        const char *    val
 
-# UNTESTED
-ZOOM_package
-ZOOM_connection_package(c, options)
-       ZOOM_connection c
-       ZOOM_options    options
-
-# UNTESTED
-void
-ZOOM_package_destroy(p)
-       ZOOM_package    p
-
-# UNTESTED
-void
-ZOOM_package_send(p, type)
-       ZOOM_package    p
-       const char *    type
-
-# UNTESTED
-const char *
-ZOOM_package_option_get(p, key)
-       ZOOM_package    p
-       const char *    key
-
-# UNTESTED
-void
-ZOOM_package_option_set(p, key, val)
-       ZOOM_package    p
-       const char *    key
-       const char *    val
-
-# UNTESTED
-void
-ZOOM_resultset_sort(r, sort_type, sort_spec)
-       ZOOM_resultset  r
-       const char *    sort_type
-       const char *    sort_spec
-
 # We ignore the return value of ZOOM_options_set_callback(), since it
 # is always just the address of the __ZOOM_option_callback() function.
 # The information that we actually want -- the address of the Perl
@@ -511,9 +511,44 @@ ZOOM_options_set_int(opt, name, value)
        const char* name
        int value
 
+# TESTED
+ZOOM_package
+ZOOM_connection_package(c, options)
+       ZOOM_connection c
+       ZOOM_options    options
+
+# TESTED
+void
+ZOOM_package_destroy(p)
+       ZOOM_package    p
+
+# TESTED
+void
+ZOOM_package_send(p, type)
+       ZOOM_package    p
+       const char *    type
+
+# TESTED
+const char *
+ZOOM_package_option_get(p, key)
+       ZOOM_package    p
+       const char *    key
+
+# TESTED
+void
+ZOOM_package_option_set(p, key, val)
+       ZOOM_package    p
+       const char *    key
+       const char *    val
+
 # UNTESTED
 int
 ZOOM_event(no, cs)
        int     no
        ZOOM_connection *       cs
 
+# UNTESTED
+int
+ZOOM_connection_last_event(cs)
+       ZOOM_connection cs
+