Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ConsoleOutputMirror.cs
Go to the documentation of this file.
1using System;
2using System.IO;
3using System.Text;
4
5namespace ReLogic.IO;
6
8{
9 private class DoubleWriter : TextWriter
10 {
11 private readonly TextWriter _first;
12
13 private readonly TextWriter _second;
14
15 public override Encoding Encoding => _first.Encoding;
16
17 public DoubleWriter(TextWriter first, TextWriter second)
18 {
19 _first = first;
20 _second = second;
21 }
22
23 public override void Flush()
24 {
25 _first.Flush();
26 _second.Flush();
27 }
28
29 public override void Write(char value)
30 {
33 }
34 }
35
37
39
41
43
44 private readonly TextWriter _oldConsoleOutput;
45
46 private bool _disposedValue;
47
48 public static void ToFile(string path)
49 {
50 if (_instance != null)
51 {
52 _instance.Dispose();
53 _instance = null;
54 }
55 try
56 {
58 }
59 catch (Exception arg)
60 {
61 Console.WriteLine("Unable to bind console output to file: {0}\r\nException: {1}", path, arg);
62 }
63 }
64
77
78 protected virtual void Dispose(bool disposing)
79 {
81 {
82 return;
83 }
84 if (disposing)
85 {
87 if (_fileWriter != null)
88 {
91 _fileWriter = null;
92 }
93 if (_fileStream != null)
94 {
96 _fileStream = null;
97 }
98 }
99 _disposedValue = true;
100 }
101
102 public void Dispose()
103 {
104 Dispose(disposing: true);
105 }
106}
DoubleWriter(TextWriter first, TextWriter second)
static void ToFile(string path)
virtual void Dispose(bool disposing)
static ConsoleOutputMirror _instance
static void WriteLine()
Definition Console.cs:733
static TextWriter Out
Definition Console.cs:153
static void SetOut(TextWriter newOut)
Definition Console.cs:686
static DirectoryInfo CreateDirectory(string path)
Definition Directory.cs:28
static ? DirectoryInfo GetParent(string path)
Definition Directory.cs:9
static FileStream Create(string path)
Definition File.cs:73
override void Flush()
override void Close()
virtual void Close()
Definition Stream.cs:644
virtual void Write(char value)
virtual void Flush()