void LexWriter_add_term(LexiconWriter* self, CharBuf* term_text, TermInfo* tinfo) { OutStream *dat_out = self->dat_out; if ( (self->count % self->index_interval == 0) && !self->temp_mode ) { // Write a subset of entries to lexicon.ix. S_add_last_term_to_ix(self); } TermStepper_Write_Delta(self->term_stepper, dat_out, (Obj*)term_text); TermStepper_Write_Delta(self->tinfo_stepper, dat_out, (Obj*)tinfo); // Track number of terms. self->count++; }
void LexWriter_add_term(LexiconWriter* self, CharBuf* term_text, TermInfo* tinfo) { char *text_ptr = (char*)CB_Get_Ptr8(term_text); char *last_ptr = (char*)CB_Get_Ptr8(self->last_text); size_t text_size = CB_Get_Size(term_text); size_t last_size = CB_Get_Size(self->last_text); /* Write a subset of entries to lexicon.ix. */ if ( (self->count % self->index_interval == 0) && !self->temp_mode ) { S_add_last_term_to_ix(self, last_ptr, last_size); } /* Write the record; track number of terms. */ LexStepper_Write_Record(self->stepper, self->dat_out, text_ptr, text_size, last_ptr, last_size, tinfo, self->last_tinfo); self->count++; /* Remember for delta encoding. */ CB_Copy(self->last_text, term_text); TInfo_copy(self->last_tinfo, tinfo); }