コード例 #1
0
            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 ...
                }
            }
コード例 #2
0
ファイル: BinaryLoadedGraph.cs プロジェクト: retahc/old-code
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 void WriteProjectInfo()
 {
     BinaryHelper.WriteObject(bw, gb.PInfo);
 }
コード例 #5
0
 void WriteResultTable()
 {
     BinaryHelper.WriteObject(bw, BinaryHelper.Unwrap <Result> (result_table));
 }
コード例 #6
0
 void WriteTypeTable()
 {
     BinaryHelper.WriteObject(bw, BinaryHelper.Unwrap <Type> (type_table));
 }
コード例 #7
0
ファイル: BinaryLoadedGraph.cs プロジェクト: retahc/old-code
 void ReadResultTable(BinaryReader br)
 {
     result_table = (Result[])BinaryHelper.ReadObject(br);
 }
コード例 #8
0
ファイル: BinaryLoadedGraph.cs プロジェクト: retahc/old-code
 void ReadTypeTable(BinaryReader br)
 {
     type_table = (Type[])BinaryHelper.ReadObject(br);
 }
コード例 #9
0
ファイル: BinaryLoadedGraph.cs プロジェクト: retahc/old-code
 void ReadDependents(BinaryReader br)
 {
     dep_files   = (DependentItemInfo[])BinaryHelper.ReadObject(br);
     dep_bundles = (DependentItemInfo[])BinaryHelper.ReadObject(br);
 }
コード例 #10
0
ファイル: BinaryLoadedGraph.cs プロジェクト: retahc/old-code
 void ReadProjectInfo(BinaryReader br)
 {
     pinfo = (ProjectInfo)BinaryHelper.ReadObject(br);
 }