PhraseCompiler* PhraseCompiler_deserialize(PhraseCompiler *self, InStream *instream) { self = self ? self : (PhraseCompiler*)VTable_Make_Obj(PHRASECOMPILER); Compiler_deserialize((Compiler*)self, instream); self->idf = InStream_Read_F32(instream); self->raw_weight = InStream_Read_F32(instream); self->query_norm_factor = InStream_Read_F32(instream); self->normalized_weight = InStream_Read_F32(instream); return self; }
PhraseCompiler* PhraseCompiler_Deserialize_IMP(PhraseCompiler *self, InStream *instream) { PhraseCompiler_Deserialize_t super_deserialize = SUPER_METHOD_PTR(PHRASECOMPILER, LUCY_PhraseCompiler_Deserialize); self = super_deserialize(self, instream); PhraseCompilerIVARS *const ivars = PhraseCompiler_IVARS(self); ivars->idf = InStream_Read_F32(instream); ivars->raw_weight = InStream_Read_F32(instream); ivars->query_norm_factor = InStream_Read_F32(instream); ivars->normalized_weight = InStream_Read_F32(instream); return self; }
TermCompiler* TermCompiler_Deserialize_IMP(TermCompiler *self, InStream *instream) { TermCompiler_Deserialize_t super_deserialize = SUPER_METHOD_PTR(TERMCOMPILER, LUCY_TermCompiler_Deserialize); self = super_deserialize(self, instream); TermCompilerIVARS *const ivars = TermCompiler_IVARS(self); ivars->idf = InStream_Read_F32(instream); ivars->raw_weight = InStream_Read_F32(instream); ivars->query_norm_factor = InStream_Read_F32(instream); ivars->normalized_weight = InStream_Read_F32(instream); return self; }
ProximityCompiler* ProximityCompiler_Deserialize_IMP(ProximityCompiler *self, InStream *instream) { ProximityCompiler_Deserialize_t super_deserialize = SUPER_METHOD_PTR(PROXIMITYCOMPILER, LUCY_ProximityCompiler_Deserialize); self = super_deserialize(self, instream); ProximityCompilerIVARS *const ivars = ProximityCompiler_IVARS(self); ivars->idf = InStream_Read_F32(instream); ivars->raw_weight = InStream_Read_F32(instream); ivars->query_norm_factor = InStream_Read_F32(instream); ivars->normalized_weight = InStream_Read_F32(instream); ivars->within = InStream_Read_C32(instream); return self; }
PhraseQuery* PhraseQuery_Deserialize_IMP(PhraseQuery *self, InStream *instream) { float boost = InStream_Read_F32(instream); String *field = Freezer_read_string(instream); Vector *terms = Freezer_read_varray(instream); return S_do_init(self, field, terms, boost); }
Compiler* Compiler_deserialize(Compiler *self, InStream *instream) { self->boost = InStream_Read_F32(instream); self->parent = (Query*)THAW(instream); self->sim = (Similarity*)THAW(instream); return self; }
ProximityQuery* ProximityQuery_Deserialize_IMP(ProximityQuery *self, InStream *instream) { float boost = InStream_Read_F32(instream); String *field = Freezer_read_string(instream); VArray *terms = Freezer_read_varray(instream); uint32_t within = InStream_Read_C32(instream); return S_do_init(self, field, terms, boost, within); }
TermQuery* TermQuery_Deserialize_IMP(TermQuery *self, InStream *instream) { TermQueryIVARS *const ivars = TermQuery_IVARS(self); ivars->field = Freezer_read_string(instream); ivars->term = (Obj*)THAW(instream); ivars->boost = InStream_Read_F32(instream); return self; }
PhraseQuery* PhraseQuery_deserialize(PhraseQuery *self, InStream *instream) { float boost = InStream_Read_F32(instream); CharBuf *field = CB_deserialize(NULL, instream); VArray *terms = VA_deserialize(NULL, instream); self = self ? self : (PhraseQuery*)VTable_Make_Obj(PHRASEQUERY); return S_do_init(self, field, terms, boost); }
HitDoc* HitDoc_Deserialize_IMP(HitDoc *self, InStream *instream) { HitDoc_Deserialize_t super_deserialize = SUPER_METHOD_PTR(HITDOC, LUCY_HitDoc_Deserialize); self = super_deserialize(self, instream); HitDocIVARS *const ivars = HitDoc_IVARS(self); ivars->score = InStream_Read_F32(instream); return self; }
PolyQuery* PolyQuery_Deserialize_IMP(PolyQuery *self, InStream *instream) { float boost = InStream_Read_F32(instream); uint32_t num_children = InStream_Read_U32(instream); PolyQuery_init(self, NULL); PolyQueryIVARS *const ivars = PolyQuery_IVARS(self); PolyQuery_Set_Boost(self, boost); Vec_Grow(ivars->children, num_children); while (num_children--) { Vec_Push(ivars->children, THAW(instream)); } return self; }
LeafQuery* LeafQuery_Deserialize_IMP(LeafQuery *self, InStream *instream) { LeafQueryIVARS *const ivars = LeafQuery_IVARS(self); if (InStream_Read_U8(instream)) { ivars->field = Freezer_read_string(instream); } else { ivars->field = NULL; } ivars->text = Freezer_read_string(instream); ivars->boost = InStream_Read_F32(instream); return self; }
Obj* F32SortCache_value(Float32SortCache *self, int32_t ord, Obj *blank) { if (ord == self->null_ord) { return NULL; } else if (ord < 0) { THROW(ERR, "Ordinal less than 0 for %o: %i32", self->field, ord); } else { Float32 *num_blank = (Float32*)CERTIFY(blank, FLOAT32); InStream_Seek(self->dat_in, ord * sizeof(float)); Float32_Set_Value(num_blank, InStream_Read_F32(self->dat_in)); } return blank; }
RangeQuery* RangeQuery_Deserialize_IMP(RangeQuery *self, InStream *instream) { // Deserialize components. float boost = InStream_Read_F32(instream); String *field = Freezer_read_string(instream); Obj *lower_term = InStream_Read_U8(instream) ? THAW(instream) : NULL; Obj *upper_term = InStream_Read_U8(instream) ? THAW(instream) : NULL; bool include_lower = !!InStream_Read_U8(instream); bool include_upper = !!InStream_Read_U8(instream); // Init object. RangeQuery_init(self, field, lower_term, upper_term, include_lower, include_upper); RangeQuery_Set_Boost(self, boost); DECREF(upper_term); DECREF(lower_term); DECREF(field); return self; }
RangeQuery* RangeQuery_deserialize(RangeQuery *self, InStream *instream) { // Deserialize components. float boost = InStream_Read_F32(instream); CharBuf *field = CB_Deserialize((CharBuf*)VTable_Make_Obj(CHARBUF), instream); Obj *lower_term = InStream_Read_U8(instream) ? THAW(instream) : NULL; Obj *upper_term = InStream_Read_U8(instream) ? THAW(instream) : NULL; bool_t include_lower = InStream_Read_U8(instream); bool_t include_upper = InStream_Read_U8(instream); // Init object. RangeQuery_init(self, field, lower_term, upper_term, include_lower, include_upper); RangeQuery_Set_Boost(self, boost); DECREF(upper_term); DECREF(lower_term); DECREF(field); return self; }
HitDoc* DefDocReader_Fetch_Doc_IMP(DefaultDocReader *self, int32_t doc_id) { DefaultDocReaderIVARS *const ivars = DefDocReader_IVARS(self); Schema *const schema = ivars->schema; InStream *const dat_in = ivars->dat_in; InStream *const ix_in = ivars->ix_in; Hash *const fields = Hash_new(1); int64_t start; uint32_t num_fields; uint32_t field_name_cap = 31; char *field_name = (char*)MALLOCATE(field_name_cap + 1); // Get data file pointer from index, read number of fields. InStream_Seek(ix_in, (int64_t)doc_id * 8); start = InStream_Read_U64(ix_in); InStream_Seek(dat_in, start); num_fields = InStream_Read_C32(dat_in); // Decode stored data and build up the doc field by field. while (num_fields--) { uint32_t field_name_len; Obj *value; FieldType *type; // Read field name. field_name_len = InStream_Read_C32(dat_in); if (field_name_len > field_name_cap) { field_name_cap = field_name_len; field_name = (char*)REALLOCATE(field_name, field_name_cap + 1); } InStream_Read_Bytes(dat_in, field_name, field_name_len); // Find the Field's FieldType. StackString *field_name_str = SSTR_WRAP_UTF8(field_name, field_name_len); type = Schema_Fetch_Type(schema, (String*)field_name_str); // Read the field value. switch (FType_Primitive_ID(type) & FType_PRIMITIVE_ID_MASK) { case FType_TEXT: { uint32_t value_len = InStream_Read_C32(dat_in); char *buf = (char*)MALLOCATE(value_len + 1); InStream_Read_Bytes(dat_in, buf, value_len); buf[value_len] = '\0'; value = (Obj*)Str_new_steal_utf8(buf, value_len); break; } case FType_BLOB: { uint32_t value_len = InStream_Read_C32(dat_in); char *buf = (char*)MALLOCATE(value_len); InStream_Read_Bytes(dat_in, buf, value_len); value = (Obj*)BB_new_steal_bytes( buf, value_len, value_len); break; } case FType_FLOAT32: value = (Obj*)Float32_new( InStream_Read_F32(dat_in)); break; case FType_FLOAT64: value = (Obj*)Float64_new( InStream_Read_F64(dat_in)); break; case FType_INT32: value = (Obj*)Int32_new( (int32_t)InStream_Read_C32(dat_in)); break; case FType_INT64: value = (Obj*)Int64_new( (int64_t)InStream_Read_C64(dat_in)); break; default: value = NULL; THROW(ERR, "Unrecognized type: %o", type); } // Store the value. Hash_Store_Utf8(fields, field_name, field_name_len, value); } FREEMEM(field_name); HitDoc *retval = HitDoc_new(fields, doc_id, 0.0); DECREF(fields); return retval; }
Query* Query_Deserialize_IMP(Query *self, InStream *instream) { float boost = InStream_Read_F32(instream); return Query_init(self, boost); }