KinoSearch::Index::TermInfo - filepointer/statistical data for a Term


TermInfo* clone(tinfo) TermInfo *tinfo; CODE: RETVAL = Kino_TInfo_dupe(tinfo); OUTPUT: RETVAL

SV* _set_or_get(tinfo, ...) TermInfo *tinfo; ALIAS: set_doc_freq = 1 get_doc_freq = 2 set_frq_fileptr = 3 get_frq_fileptr = 4 set_prx_fileptr = 5 get_prx_fileptr = 6 set_skip_offset = 7 get_skip_offset = 8 set_index_fileptr = 9 get_index_fileptr = 10 CODE: { KINO_START_SET_OR_GET_SWITCH

    case 1:  tinfo->doc_freq = SvIV(ST(1));
             /* fall through */
    case 2:  RETVAL = newSViv(tinfo->doc_freq);
             break;
    case 3:  tinfo->frq_fileptr = SvNV(ST(1));
             /* fall through */
    case 4:  RETVAL = newSVnv(tinfo->frq_fileptr);
             break;
    case 5:  tinfo->prx_fileptr = SvNV(ST(1));
             /* fall through */
    case 6:  RETVAL = newSVnv(tinfo->prx_fileptr);
             break;
    case 7:  tinfo->skip_offset = SvIV(ST(1));
             /* fall through */
    case 8:  RETVAL = newSViv(tinfo->skip_offset);
             break;
    case 9:  tinfo->index_fileptr = SvNV(ST(1));
             /* fall through */
    case 10: RETVAL = newSVnv(tinfo->index_fileptr);
             break;
        
    KINO_END_SET_OR_GET_SWITCH
}
    OUTPUT: RETVAL

void DESTROY(tinfo) TermInfo* tinfo; CODE: Kino_Safefree(tinfo);

__H__

#ifndef H_KINOSEARCH_INDEX_TERM_INFO #define H_KINOSEARCH_INDEX_TERM_INFO 1

#include ``EXTERN.h'' #include ``perl.h'' #include ``XSUB.h'' #include ``KinoSearchUtilMemManager.h''

typedef struct terminfo { I32 doc_freq; double frq_fileptr; double prx_fileptr; I32 skip_offset; double index_fileptr; } TermInfo;

TermInfo* Kino_TInfo_new(); TermInfo* Kino_TInfo_dupe(TermInfo*); void Kino_TInfo_reset(TermInfo*); void Kino_TInfo_destroy(TermInfo*);

#endif /* include guard */

__C__

#include ``KinoSearchIndexTermInfo.h''

TermInfo* Kino_TInfo_new() { TermInfo* tinfo; Kino_New(0, tinfo, 1, TermInfo); Kino_TInfo_reset(tinfo); return tinfo; }

/* Allocate and return a copy of the supplied TermInfo. */ TermInfo* Kino_TInfo_dupe(TermInfo *tinfo) { TermInfo* new_tinfo;


    Kino_New(0, new_tinfo, 1, TermInfo);
    new_tinfo->doc_freq      = tinfo->doc_freq;
    new_tinfo->frq_fileptr   = tinfo->frq_fileptr;
    new_tinfo->prx_fileptr   = tinfo->prx_fileptr;
    new_tinfo->skip_offset   = tinfo->skip_offset;
    new_tinfo->index_fileptr = tinfo->index_fileptr;
    return new_tinfo;
}

void Kino_TInfo_reset(TermInfo *tinfo) { tinfo->doc_freq = 0; tinfo->frq_fileptr = 0.0; tinfo->prx_fileptr = 0.0; tinfo->skip_offset = 0; tinfo->index_fileptr = 0.0; }

void Kino_TInfo_destroy(TermInfo *tinfo) { Kino_Safefree(tinfo); }

__POD__

Back to Top

 KinoSearch::Index::TermInfo - filepointer/statistical data for a Term