void PhraseQuery_Serialize_IMP(PhraseQuery *self, OutStream *outstream) { PhraseQueryIVARS *const ivars = PhraseQuery_IVARS(self); OutStream_Write_F32(outstream, ivars->boost); Freezer_serialize_string(ivars->field, outstream); Freezer_serialize_varray(ivars->terms, outstream); }
void Freezer_serialize(Obj *obj, OutStream *outstream) { if (Obj_is_a(obj, STRING)) { Freezer_serialize_string((String*)obj, outstream); } else if (Obj_is_a(obj, BLOB)) { Freezer_serialize_blob((Blob*)obj, outstream); } else if (Obj_is_a(obj, VECTOR)) { Freezer_serialize_varray((Vector*)obj, outstream); } else if (Obj_is_a(obj, HASH)) { Freezer_serialize_hash((Hash*)obj, outstream); } else if (Obj_is_a(obj, INTEGER)) { int64_t val = Int_Get_Value((Integer*)obj); OutStream_Write_C64(outstream, (uint64_t)val); } else if (Obj_is_a(obj, FLOAT)) { double val = Float_Get_Value((Float*)obj); OutStream_Write_F64(outstream, val); } else if (Obj_is_a(obj, BOOLEAN)) { bool val = Bool_Get_Value((Boolean*)obj); OutStream_Write_U8(outstream, (uint8_t)val); } else if (Obj_is_a(obj, QUERY)) { Query_Serialize((Query*)obj, outstream); } else if (Obj_is_a(obj, DOC)) { Doc_Serialize((Doc*)obj, outstream); } else if (Obj_is_a(obj, DOCVECTOR)) { DocVec_Serialize((DocVector*)obj, outstream); } else if (Obj_is_a(obj, TERMVECTOR)) { TV_Serialize((TermVector*)obj, outstream); } else if (Obj_is_a(obj, SIMILARITY)) { Sim_Serialize((Similarity*)obj, outstream); } else if (Obj_is_a(obj, MATCHDOC)) { MatchDoc_Serialize((MatchDoc*)obj, outstream); } else if (Obj_is_a(obj, TOPDOCS)) { TopDocs_Serialize((TopDocs*)obj, outstream); } else if (Obj_is_a(obj, SORTSPEC)) { SortSpec_Serialize((SortSpec*)obj, outstream); } else if (Obj_is_a(obj, SORTRULE)) { SortRule_Serialize((SortRule*)obj, outstream); } else { THROW(ERR, "Don't know how to serialize a %o", Obj_get_class_name(obj)); } }
void PolyCompiler_Serialize_IMP(PolyCompiler *self, OutStream *outstream) { PolyCompilerIVARS *const ivars = PolyCompiler_IVARS(self); Freezer_serialize_string(PolyCompiler_get_class_name(self), outstream); Freezer_serialize_varray(ivars->children, outstream); PolyCompiler_Serialize_t super_serialize = SUPER_METHOD_PTR(POLYCOMPILER, LUCY_PolyCompiler_Serialize); super_serialize(self, outstream); }
void TopDocs_Serialize_IMP(TopDocs *self, OutStream *outstream) { TopDocsIVARS *const ivars = TopDocs_IVARS(self); Freezer_serialize_varray(ivars->match_docs, outstream); OutStream_Write_C32(outstream, ivars->total_hits); }