public void WriteProviderData(BinaryGraphSerializer bsg) { bsg.bw.Write(dep_offsets.Length); bsg.bw.Write(pb.Basis); bsg.bw.Write(pb.DeclarationLoc); bsg.bw.Write(dep_chunk_len); BinaryHelper.WriteRaw(bsg.bw, dep_offsets); bsg.bw.Write(name_chunk_len); BinaryHelper.WriteRaw(bsg.bw, name_offsets); for (int i = 0; i < dep_offsets.Length; i++) { WrenchTarget tb = targids[i]; BinaryHelper.WriteRaw(bsg.bw, bsg.RegisterType(tb.RuleType)); bsg.ScanTags(tb); // For later ... } }
bool LoadInternal(Stream s, IWarningLogger log) { BinaryReader br = new BinaryReader(s); // 4-byte identification header. byte[] b = br.ReadBytes(4); if (b[0] != (byte)'M' || b[1] != (byte)'B' || b[2] != (byte)'G' || b[3] != BinaryFormatIdent) { log.Error(1012, "Invalid header in saved graph file", null); return(true); } // 32-bit int check for endianness if (BinaryHelper.ReadRawInt(br) != 0x01B2C3D4) { log.Error(1012, "Endianness change in saved graph file", null); return(true); } // Actual data ReadProjectInfo(br); BinaryHelper.ExpectDelimiter(br); ReadDependents(br); BinaryHelper.ExpectDelimiter(br); ReadTags(br); BinaryHelper.ExpectDelimiter(br); ReadTargetTables(br); BinaryHelper.ExpectDelimiter(br); ReadProviders(br); BinaryHelper.ExpectDelimiter(br); ReadTagTable(br); BinaryHelper.ExpectDelimiter(br); ReadTypeTable(br); BinaryHelper.ExpectDelimiter(br); ReadResultTable(br); return(false); }
void WriteTagTables() { int totallen = 0; int[] tag_offsets = new int[gb.NumTags]; for (int i = 0; i < gb.NumTags; i++) { tag_offsets[i] = totallen; totallen += tag_items[i].Count; } bw.Write(totallen); for (int i = 0; i < gb.NumTags; i++) { BinaryHelper.WriteRaw(bw, tag_items[i]); } BinaryHelper.WriteRaw(bw, tag_offsets); }
void WriteProjectInfo() { BinaryHelper.WriteObject(bw, gb.PInfo); }
void WriteResultTable() { BinaryHelper.WriteObject(bw, BinaryHelper.Unwrap <Result> (result_table)); }
void WriteTypeTable() { BinaryHelper.WriteObject(bw, BinaryHelper.Unwrap <Type> (type_table)); }
void ReadResultTable(BinaryReader br) { result_table = (Result[])BinaryHelper.ReadObject(br); }
void ReadTypeTable(BinaryReader br) { type_table = (Type[])BinaryHelper.ReadObject(br); }
void ReadDependents(BinaryReader br) { dep_files = (DependentItemInfo[])BinaryHelper.ReadObject(br); dep_bundles = (DependentItemInfo[])BinaryHelper.ReadObject(br); }
void ReadProjectInfo(BinaryReader br) { pinfo = (ProjectInfo)BinaryHelper.ReadObject(br); }