using System.IO; using System.Text; namespace ComponentAce.Compression.Libs.zlib { public class SupportClass { public static long Identity(long literal) { return literal; } public static ulong Identity(ulong literal) { return literal; } public static float Identity(float literal) { return literal; } public static double Identity(double literal) { return literal; } public static int URShift(int number, int bits) { if (number >= 0) { return number >> bits; } return (number >> bits) + (2 << ~bits); } public static int URShift(int number, long bits) { return URShift(number, (int)bits); } public static long URShift(long number, int bits) { if (number >= 0) { return number >> bits; } return (number >> bits) + (2L << ~bits); } public static long URShift(long number, long bits) { return URShift(number, (int)bits); } public static int ReadInput(Stream sourceStream, byte[] target, int start, int count) { if (target.Length == 0) { return 0; } byte[] array = new byte[target.Length]; int num = sourceStream.Read(array, start, count); if (num == 0) { return -1; } for (int i = start; i < start + num; i++) { target[i] = array[i]; } return num; } public static int ReadInput(TextReader sourceTextReader, byte[] target, int start, int count) { if (target.Length == 0) { return 0; } char[] array = new char[target.Length]; int num = sourceTextReader.Read(array, start, count); if (num == 0) { return -1; } for (int i = start; i < start + num; i++) { target[i] = (byte)array[i]; } return num; } public static byte[] ToByteArray(string sourceString) { return Encoding.UTF8.GetBytes(sourceString); } public static char[] ToCharArray(byte[] byteArray) { return Encoding.UTF8.GetChars(byteArray); } } }