forked from shiftwinting/FastGithub
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDelegatingStream.cs
142 lines (118 loc) · 3.7 KB
/
DelegatingStream.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
using System;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace FastGithub.FlowAnalyze
{
abstract class DelegatingStream : Stream
{
protected Stream Inner { get; }
public DelegatingStream(Stream inner)
{
this.Inner = inner;
}
public override bool CanRead
{
get
{
return this.Inner.CanRead;
}
}
public override bool CanSeek
{
get
{
return this.Inner.CanSeek;
}
}
public override bool CanWrite
{
get
{
return this.Inner.CanWrite;
}
}
public override long Length
{
get
{
return this.Inner.Length;
}
}
public override long Position
{
get
{
return this.Inner.Position;
}
set
{
this.Inner.Position = value;
}
}
public override void Flush()
{
this.Inner.Flush();
}
public override Task FlushAsync(CancellationToken cancellationToken)
{
return this.Inner.FlushAsync(cancellationToken);
}
public override int Read(byte[] buffer, int offset, int count)
{
return this.Inner.Read(buffer, offset, count);
}
public override int Read(Span<byte> destination)
{
return this.Inner.Read(destination);
}
public override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
{
return this.Inner.ReadAsync(buffer, offset, count, cancellationToken);
}
public override ValueTask<int> ReadAsync(Memory<byte> destination, CancellationToken cancellationToken = default)
{
return this.Inner.ReadAsync(destination, cancellationToken);
}
public override long Seek(long offset, SeekOrigin origin)
{
return this.Inner.Seek(offset, origin);
}
public override void SetLength(long value)
{
this.Inner.SetLength(value);
}
public override void Write(byte[] buffer, int offset, int count)
{
this.Inner.Write(buffer, offset, count);
}
public override void Write(ReadOnlySpan<byte> source)
{
this.Inner.Write(source);
}
public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
{
return this.Inner.WriteAsync(buffer, offset, count, cancellationToken);
}
public override ValueTask WriteAsync(ReadOnlyMemory<byte> source, CancellationToken cancellationToken = default)
{
return this.Inner.WriteAsync(source, cancellationToken);
}
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state)
{
return TaskToApm.Begin(ReadAsync(buffer, offset, count), callback, state);
}
public override int EndRead(IAsyncResult asyncResult)
{
return TaskToApm.End<int>(asyncResult);
}
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state)
{
return TaskToApm.Begin(WriteAsync(buffer, offset, count), callback, state);
}
public override void EndWrite(IAsyncResult asyncResult)
{
TaskToApm.End(asyncResult);
}
}
}