QDBM_File
view release on metacpan or search on metacpan
QDBM_File.xs view on Meta::CPAN
fetch_list(QDBM_File db, datum_key key)
PREINIT:
int i;
STRLEN ksize;
const char* kbyte;
int vsize;
const char* value;
CBLIST* list;
SV* value_sv;
dMY_CXT;
PPCODE:
SAVESPTR(MY_CXT.comparer);
MY_CXT.comparer = db->comparer;
kbyte = SvPV_const(key, ksize);
list = vlgetlist( vlptr(db), kbyte, (int)ksize );
if (NULL != list) {
for (i = 0; i < cblistnum(list); i++) {
value = cblistval(list, i, &vsize);
value_sv = newSVpvn(value, (STRLEN)vsize);
DBM_ckFilter(value_sv, filter_fetch_value, "filter_fetch_value");
QDBM_File.xs view on Meta::CPAN
fetch_list(QDBM_File db, datum_key key)
PREINIT:
int i;
STRLEN ksize;
const char* kbyte;
int vsize;
const char* value;
CBLIST* list;
SV* value_sv;
dMY_CXT;
PPCODE:
SAVESPTR(MY_CXT.comparer);
MY_CXT.comparer = db->comparer;
kbyte = SvPV_const(key, ksize);
list = vstgetlist( vstptr(db), kbyte, (int)ksize );
if (NULL != list) {
for (i = 0; i < cblistnum(list); i++) {
value = cblistval(list, i, &vsize);
value_sv = newSVpvn(value, (STRLEN)vsize);
DBM_ckFilter(value_sv, filter_fetch_value, "filter_fetch_value");
QDBM_File.xs view on Meta::CPAN
RETVAL = odcheck(db, id);
OUTPUT:
RETVAL
void
search_document(ODEUM* db, const char* word, int max = -1)
PREINIT:
int i;
int length;
ODPAIR* pair;
PPCODE:
pair = odsearch(db, word, max, &length);
if (NULL != pair) {
for (i = 0; i < length; i++) {
mXPUSHi(pair[i].id);
}
cbfree(pair);
}
else {
XSRETURN_EMPTY;
}
QDBM_File.xs view on Meta::CPAN
RETVAL
void
_get_scores(ODEUM* db, ODDOC* doc, int max)
PREINIT:
const char* key;
const char* value;
int ksize;
int vsize;
CBMAP* scores;
PPCODE:
scores = oddocscores(doc, max, db);
if ( 0 == cbmaprnum(scores) ) {
cbmapclose(scores);
XSRETURN_EMPTY;
}
else {
cbmapiterinit(scores);
while ( NULL != ( key = cbmapiternext(scores, &ksize) ) ) {
value = cbmapiterval(key, &vsize);
XPUSHs( sv_2mortal( newSVpvn(key, (STRLEN)ksize) ) );
QDBM_File.xs view on Meta::CPAN
odsetcharclass(db, space, delimiter, glue);
void
analyze_text(SV* self, const char* text)
PREINIT:
ODEUM* db;
int i;
const char* value;
int vsize;
CBLIST* appearance_words;
PPCODE:
if ( sv_isobject(self) && sv_derived_from(self, "QDBM_File::InvertedIndex") ) {
db = (ODEUM*)SvIV( (SV*)SvRV(self) );
appearance_words = cblistopen();
odanalyzetext(db, text, appearance_words, NULL);
}
else {
appearance_words = odbreaktext(text);
}
if ( 0 == cblistnum(appearance_words) ) {
cblistclose(appearance_words);
QDBM_File.xs view on Meta::CPAN
void
query(ODEUM *db, const char* query)
PREINIT:
int i;
int length;
int vsize;
const char* value;
ODPAIR* pair;
SV* errsv;
CBLIST* errors;
PPCODE:
errors = cblistopen();
pair = odquery(db, query, &length, errors);
if (NULL == pair) {
errsv = newSVpvn("", (STRLEN)0);
SAVEMORTALIZESV(errsv);
for (i = 0; i < cblistnum(errors); i++) {
value = cblistval(errors, i, &vsize);
sv_catpv(errsv, "qdbm query warning: ");
sv_catpv(errsv, value);
sv_catpv(errsv, "\n");
QDBM_File.xs view on Meta::CPAN
OUTPUT:
RETVAL
void
get_normalized_words(ODDOC* doc)
PREINIT:
int i;
const char* value;
int vsize;
const CBLIST* words;
PPCODE:
words = oddocnwords(doc);
if ( 0 < cblistnum(words) ) {
for (i = 0; i < cblistnum(words); i++) {
value = cblistval(words, i, &vsize);
XPUSHs( sv_2mortal( newSVpvn(value, (STRLEN)vsize) ) );
}
}
else {
XSRETURN_EMPTY;
}
void
get_appearance_words(ODDOC* doc)
PREINIT:
int i;
const char* value;
int vsize;
const CBLIST* words;
PPCODE:
words = oddocawords(doc);
if ( 0 < cblistnum(words) ) {
for (i = 0; i < cblistnum(words); i++) {
value = cblistval(words, i, &vsize);
XPUSHs( sv_2mortal( newSVpvn(value, (STRLEN)vsize) ) );
}
}
else {
XSRETURN_EMPTY;
}
void
_get_scores(ODDOC* doc, int max, ODEUM* db = NULL)
PREINIT:
const char* key;
const char* value;
int ksize;
int vsize;
CBMAP* scores;
PPCODE:
scores = oddocscores(doc, max, db);
if ( 0 == cbmaprnum(scores) ) {
cbmapclose(scores);
XSRETURN_EMPTY;
}
else {
cbmapiterinit(scores);
while ( NULL != ( key = cbmapiternext(scores, &ksize) ) ) {
value = cbmapiterval(key, &vsize);
XPUSHs( sv_2mortal( newSVpvn(key, (STRLEN)ksize) ) );
( run in 0.423 second using v1.01-cache-2.11-cpan-5511b514fd6 )