Implemented loadable filters.
[idzebra-moved-to-github.git] / recctrl / perlread.h.in
index 2a5c606..c153d4e 100644 (file)
@@ -6,3 +6,27 @@
 #define PERL_XS_INIT @PERL_XS_INIT@
 
 @PERL_XS_INIT_INCLUDE@
+
+#define GRS_PERL_MODULE_NAME_MAXLEN 255
+
+#include <data1.h>
+
+/* Context information for the filter */
+struct perl_context {
+    PerlInterpreter *perli;
+    PerlInterpreter *origi;
+    int perli_ready;
+    char filterClass[GRS_PERL_MODULE_NAME_MAXLEN];
+    SV *filterRef;
+    
+    int (*readf)(void *, char *, size_t);
+    off_t (*seekf)(void *, off_t);
+    off_t (*tellf)(void *);
+    void (*endf)(void *, off_t);
+    
+    void *fh;
+    data1_handle dh;
+    NMEM mem;
+    data1_node *res;
+    char type[GRS_PERL_MODULE_NAME_MAXLEN];
+};