public static SnappyStatus snappy_compress(byte[] input, int input_offset, int input_length, byte[] output, int output_offset, ref int output_length) { SnappyStatus status; var ulongOutput_length = (ulong)output_length; using (var pinnedInput = new PinnedBuffer(input, input_offset)) using (var pinnedOutput = new PinnedBuffer(output, output_offset)) { status = Snappy64NativeMethods.snappy_compress(pinnedInput.IntPtr, (ulong)input_length, pinnedOutput.IntPtr, ref ulongOutput_length); output_length = (int)ulongOutput_length; } return(status); }
public static SnappyStatus snappy_compress(IntPtr input, int input_length, IntPtr output, ref int output_length) { SnappyStatus status; if (__is64BitProcess) { var ulongOutput_length = (ulong)output_length; status = Snappy64NativeMethods.snappy_compress(input, (ulong)input_length, output, ref ulongOutput_length); output_length = (int)ulongOutput_length; } else { var uintOutput_length = (uint)output_length; status = Snappy32NativeMethods.snappy_compress(input, (uint)input_length, output, ref uintOutput_length); output_length = (int)uintOutput_length; } return(status); }