scripts
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace ICSharpCode.SharpZipLib.Core
|
||||
{
|
||||
// Token: 0x0200001E RID: 30
|
||||
public sealed class StreamUtils
|
||||
{
|
||||
// Token: 0x060000D8 RID: 216 RVA: 0x00007734 File Offset: 0x00006734
|
||||
public static void ReadFully(Stream stream, byte[] buffer)
|
||||
{
|
||||
StreamUtils.ReadFully(stream, buffer, 0, buffer.Length);
|
||||
}
|
||||
|
||||
// Token: 0x060000D9 RID: 217 RVA: 0x00007744 File Offset: 0x00006744
|
||||
public static void ReadFully(Stream stream, byte[] buffer, int offset, int count)
|
||||
{
|
||||
if (stream == null)
|
||||
{
|
||||
throw new ArgumentNullException("stream");
|
||||
}
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
if (offset < 0 || offset > buffer.Length)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("offset");
|
||||
}
|
||||
if (count < 0 || offset + count > buffer.Length)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("count");
|
||||
}
|
||||
while (count > 0)
|
||||
{
|
||||
int num = stream.Read(buffer, offset, count);
|
||||
if (num <= 0)
|
||||
{
|
||||
throw new EndOfStreamException();
|
||||
}
|
||||
offset += num;
|
||||
count -= num;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060000DA RID: 218 RVA: 0x000077BC File Offset: 0x000067BC
|
||||
public static void Copy(Stream source, Stream destination, byte[] buffer)
|
||||
{
|
||||
if (source == null)
|
||||
{
|
||||
throw new ArgumentNullException("source");
|
||||
}
|
||||
if (destination == null)
|
||||
{
|
||||
throw new ArgumentNullException("destination");
|
||||
}
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
if (buffer.Length < 128)
|
||||
{
|
||||
throw new ArgumentException("Buffer is too small", "buffer");
|
||||
}
|
||||
bool flag = true;
|
||||
while (flag)
|
||||
{
|
||||
int num = source.Read(buffer, 0, buffer.Length);
|
||||
if (num > 0)
|
||||
{
|
||||
destination.Write(buffer, 0, num);
|
||||
}
|
||||
else
|
||||
{
|
||||
destination.Flush();
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060000DB RID: 219 RVA: 0x00007837 File Offset: 0x00006837
|
||||
public static void Copy(Stream source, Stream destination, byte[] buffer, ProgressHandler progressHandler, TimeSpan updateInterval, object sender, string name)
|
||||
{
|
||||
StreamUtils.Copy(source, destination, buffer, progressHandler, updateInterval, sender, name, -1L);
|
||||
}
|
||||
|
||||
// Token: 0x060000DC RID: 220 RVA: 0x0000784C File Offset: 0x0000684C
|
||||
public static void Copy(Stream source, Stream destination, byte[] buffer, ProgressHandler progressHandler, TimeSpan updateInterval, object sender, string name, long fixedTarget)
|
||||
{
|
||||
if (source == null)
|
||||
{
|
||||
throw new ArgumentNullException("source");
|
||||
}
|
||||
if (destination == null)
|
||||
{
|
||||
throw new ArgumentNullException("destination");
|
||||
}
|
||||
if (buffer == null)
|
||||
{
|
||||
throw new ArgumentNullException("buffer");
|
||||
}
|
||||
if (buffer.Length < 128)
|
||||
{
|
||||
throw new ArgumentException("Buffer is too small", "buffer");
|
||||
}
|
||||
if (progressHandler == null)
|
||||
{
|
||||
throw new ArgumentNullException("progressHandler");
|
||||
}
|
||||
bool flag = true;
|
||||
DateTime dateTime = DateTime.Now;
|
||||
long num = 0L;
|
||||
long num2 = 0L;
|
||||
if (fixedTarget >= 0L)
|
||||
{
|
||||
num2 = fixedTarget;
|
||||
}
|
||||
else if (source.CanSeek)
|
||||
{
|
||||
num2 = source.Length - source.Position;
|
||||
}
|
||||
ProgressEventArgs progressEventArgs = new ProgressEventArgs(name, num, num2);
|
||||
progressHandler(sender, progressEventArgs);
|
||||
bool flag2 = true;
|
||||
while (flag)
|
||||
{
|
||||
int num3 = source.Read(buffer, 0, buffer.Length);
|
||||
if (num3 > 0)
|
||||
{
|
||||
num += (long)num3;
|
||||
flag2 = false;
|
||||
destination.Write(buffer, 0, num3);
|
||||
}
|
||||
else
|
||||
{
|
||||
destination.Flush();
|
||||
flag = false;
|
||||
}
|
||||
if (DateTime.Now - dateTime > updateInterval)
|
||||
{
|
||||
flag2 = true;
|
||||
dateTime = DateTime.Now;
|
||||
progressEventArgs = new ProgressEventArgs(name, num, num2);
|
||||
progressHandler(sender, progressEventArgs);
|
||||
flag = progressEventArgs.ContinueRunning;
|
||||
}
|
||||
}
|
||||
if (!flag2)
|
||||
{
|
||||
progressEventArgs = new ProgressEventArgs(name, num, num2);
|
||||
progressHandler(sender, progressEventArgs);
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060000DD RID: 221 RVA: 0x00007979 File Offset: 0x00006979
|
||||
private StreamUtils()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user