예제 #1
0
 internal unsafe nuint CompressStream(ref ZSTD_inBuffer_s input, ReadOnlySpan <byte> inputBuffer,
                                      ZSTD_EndDirective directive)
 {
     fixed(byte *inputBufferPtr = inputBuffer)
     fixed(byte *outputBufferPtr = outputBuffer)
     {
         input.src  = inputBufferPtr;
         output.dst = outputBufferPtr;
         return(compressor.CompressStream(ref input, ref output, directive).EnsureZstdSuccess());
     }
 }
예제 #2
0
 public static extern UIntPtr ZSTD_compressStream2(void *ctx, ZSTD_outBuffer *output, ZSTD_inBuffer *input, ZSTD_EndDirective directive);
예제 #3
0
 public static extern size_t ZSTD_compressStream2(IntPtr zcs, ref ZSTD_Buffer output, ref ZSTD_Buffer input, ZSTD_EndDirective endOp);
예제 #4
0
        private unsafe UIntPtr Compress(ReadOnlySpan <byte> buffer, ref ZSTD_Buffer output, ref ZSTD_Buffer input, ZSTD_EndDirective directive)
        {
            fixed(void *inputHandle = &MemoryMarshal.GetReference(buffer))
            fixed(void *outputHandle = &outputBuffer[0])
            {
                input.buffer  = new IntPtr(inputHandle);
                output.buffer = new IntPtr(outputHandle);

                return(ZSTD_compressStream2(cStream, ref output, ref input, directive).EnsureZstdSuccess());
            }
        }