libextractor-perl

GNU libextractor
Log | Files | Refs | README

pextract.h (1512B)


      1 #ifndef __PEXTRACT_H__
      2 #define __PEXTRACT_H__
      3 
      4 #include "EXTERN.h"
      5 #include "perl.h"
      6 #include "XSUB.h"
      7 #include "extractor.h"
      8 
      9 SV* pextract_new_object(void* object, const char* package);
     10 void* pextract_get_object(SV* sv, const char* package);
     11 
     12 HV* pextract_get_hv_from_file_extract_obj(SV* hvref);
     13 SV* pextract_get_extractor_list(SV* extractor);
     14 
     15 void pextract_hv_store_extractor_list_inc(SV* extractor, SV* list);
     16 void pextract_hv_store_extractor_list_noinc(SV* extractor, SV* list);
     17 
     18 #define pextract_hv_store_extractor_list pextract_hv_store_extractor_list_inc
     19 
     20 void _pextractor_call_XS(pTHX_ void (*subaddr) (pTHX_ CV*), CV* cv, SV** mark);
     21 
     22 #define PEXTRACTOR_CALL_BOOT(name) \
     23 	{ \
     24 		extern XS(name); \
     25 		_pextractor_call_XS(aTHX_ name, cv, mark); \
     26 	}
     27 
     28 /*
     29 #define newSvExtractor(extractor) pextract_new_object(extractor, "File::Extract::Extractor");
     30 #define SvEXTRACTOR_Extractor(sv) (struct EXTRACTOR_Extractor*)pextract_get_object(sv, "File::Extract::Extractor");
     31 */
     32 
     33 #define newSvEXTRACTOR_ExtractorList(val) pextract_new_object(val, "File::Extract::ExtractorList")
     34 #define SvEXTRACTOR_ExtractorList(sv) (EXTRACTOR_ExtractorList*)pextract_get_object(sv, "File::Extract::ExtractorList")
     35 typedef EXTRACTOR_ExtractorList EXTRACTOR_ExtractorList_ornull;
     36 #define SvEXTRACTOR_ExtractorList_ornull(sv) (((sv) && SvOK(sv)) ? SvEXTRACTOR_ExtractorList(sv) : NULL)
     37 #define newSvEXTRACTOR_ExtractorList_ornull(val) (((val) == NULL) ? &PL_sv_undef : newSvEXTRACTOR_ExtractorList(val))
     38 
     39 #endif /* __PEXTRACT_H__ */