TYPEMAP Document * T_CPP_CLASS Reader * T_CPP_CLASS IndexWriter * T_CPP_CLASS IndexReader * T_CPP_CLASS Term * T_CPP_CLASS IndexSearcher * T_CPP_CLASS Query * T_CPP_CLASS Explanation * T_CPP_CLASS HitCollector * T_CPP_CLASS Hits * T_CPP_CLASS Sort * T_CPP_CLASS Filter * T_CPP_CLASS StandardFilter * T_CPP_CLASS StopFilter * T_CPP_CLASS LowerCaseFilter * T_CPP_CLASS ISOLatin1AccentFilter * T_CPP_CLASS Token * T_CPP_CLASS Tokenizer * T_CPP_CLASS TokenFilter * T_CPP_CLASS TokenStream * T_CPP_CLASS LowerCaseTokenizer * T_CPP_CLASS WhitespaceTokenizer * T_CPP_CLASS LetterTokenizer * T_CPP_CLASS StandardTokenizer * T_CPP_CLASS QueryFilter * T_CPP_CLASS RangeFilter * T_CPP_CLASS SortField * T_CPP_CLASS TermQuery * T_CPP_CLASS FuzzyQuery * T_CPP_CLASS QueryParser * T_CPP_CLASS MultiFieldQueryParser * T_CPP_CLASS SimpleAnalyzer * T_CPP_CLASS PerlAnalyzer * T_CPP_CLASS PerlTokenizer * T_CPP_CLASS PerlTokenFilter * T_CPP_CLASS PerlCharTokenizer * T_CPP_CLASS PerFieldAnalyzerWrapper * T_CPP_CLASS StopAnalyzer * T_CPP_CLASS WhitespaceAnalyzer * T_CPP_CLASS KeywordAnalyzer * T_CPP_CLASS StandardAnalyzer * T_CPP_CLASS RAMDirectory * T_CPP_CLASS FSDirectory * T_CPP_CLASS Field * T_CPP_CLASS Analyzer * T_CPP_CLASS Directory * T_CPP_CLASS Similarity * T_CPP_CLASS int32_t T_IV const int32_t T_IV int64_t T_IV wchar_t ** T_WCHAR_ARRAY const wchar_t ** T_WCHAR_ARRAY wchar_t_keepalive ** T_WCHAR_ARRAY_KEEPALIVE const wchar_t_keepalive ** T_WCHAR_ARRAY_KEEPALIVE wchar_t * T_WCHAR const wchar_t * T_WCHAR wchar_t T_WCH const wchar_t T_WCH INPUT T_IV $var = ($type)SvIV($arg) T_CPP_CLASS { $var = SvToPtr<$type>($arg); if (!$var) XSRETURN_UNDEF; } T_WCHAR $var = SvToWChar($arg); SAVEFREEPV($var); T_WCH { wchar_t *ch = SvToWChar($arg); $var = ch[0]; Safefree(ch); } T_WCHAR_ARRAY { int i = 0; int inc = 1; char **words = XS_unpack_charPtrPtr($arg); Newz(0, $var, 100, wchar_t*); while (words[i]) { ${var}[i] = STRDUP_AtoW(words[i]); ++i; if (!(i % 100)) { ++inc; Renew($var, (100 * inc), wchar_t*); } } ${var}[i] = NULL; SAVEFREEPV($var); } T_WCHAR_ARRAY_KEEPALIVE { int i = 0; int inc = 1; char **words = XS_unpack_charPtrPtr($arg); Newz(0, $var, 100, wchar_t*); while (words[i]) { ${var}[i] = STRDUP_AtoW(words[i]); ++i; if (!(i % 100)) { ++inc; Renew($var, (100 * inc), wchar_t*); } } ${var}[i] = NULL; } OUTPUT T_IV sv_setiv($arg, (IV)$var); T_CPP_CLASS { if (!$var) XSRETURN_UNDEF; PtrToSv(CLASS, (void*)$var, $arg); } T_WCHAR { wchar_t* src; if (!$var) XSRETURN_UNDEF; src = (wchar_t*) $var; WCharToSv(src, (SV*)$arg); } T_WCH { wchar_t src[2]; src[0] = (wchar_t)$var; src[1] = 0; WCharToSv(src, (SV*)$arg); }