Exemple #1
0
        // Write item, then read back and return size diagnostics instead of round-tripped instance
        public static TreeDiagnostics Diagnostics <T>(T value, Func <T> buildT, TreeFormat format) where T : ITreeSerializable
        {
            TreeSerializationSettings settings = new TreeSerializationSettings()
            {
                LeaveStreamOpen = true
            };

            using (MemoryStream stream = new MemoryStream())
            {
                using (ITreeWriter writer = Writer(format, stream, settings))
                {
                    value.Write(writer);
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (TreeDiagnosticsReader reader = new TreeDiagnosticsReader(Reader(format, stream, settings)))
                {
                    T roundTripped = buildT();
                    roundTripped.Read(reader);

                    // Test double dispose
                    reader.Dispose();

                    return(reader.Tree);
                }
            }
        }
Exemple #2
0
 public static TreeDiagnostics Diagnostics(System.IO.Stream stream)
 {
     using (BinaryTreeReader btr = new BinaryTreeReader(stream))
         using (TreeDiagnosticsReader reader = new TreeDiagnosticsReader(btr))
         {
             FileSystem result = new FileSystem();
             result.DB.Read(reader);
             return(reader.Tree);
         }
 }