Files
BinaryObjectScanner/BurnOutSharp/External/libmspack/Compression/None.cs
2022-05-19 22:32:58 -07:00

51 lines
1.4 KiB
C#

/* This file is part of libmspack.
* (C) 2003-2018 Stuart Caie.
*
* libmspack is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License (LGPL) version 2.1
*
* For further details, see the file COPYING.LIB distributed with libmspack
*/
using System.IO;
namespace LibMSPackSharp.Compression
{
public class None
{
public static NoneState Init(SystemImpl sys, FileStream input, FileStream output, int bufsize)
{
return new NoneState()
{
Sys = sys,
Input = input,
Output = output,
Buffer = new byte[bufsize],
BufferSize = bufsize,
};
}
public static Error Decompress(object s, long bytes)
{
NoneState state = (NoneState)s;
if (state == null)
return Error.MSPACK_ERR_ARGS;
int run;
while (bytes > 0)
{
run = (bytes > state.BufferSize) ? state.BufferSize : (int)bytes;
if (state.Sys.Read(state.Input, state.Buffer, 0, run) != run)
return Error.MSPACK_ERR_READ;
if (state.Sys.Write(state.Output, state.Buffer, 0, run) != run)
return Error.MSPACK_ERR_WRITE;
bytes -= run;
}
return Error.MSPACK_ERR_OK;
}
}
}