mirror of
https://github.com/xerial/snappy-java.git
synced 2025-07-07 06:04:28 +02:00
compress/decompress test
This commit is contained in:
parent
23bc6f6438
commit
2a57e2e52b
@ -38,10 +38,10 @@ public class Snappy
|
|||||||
int uLen = uncompressed.remaining();
|
int uLen = uncompressed.remaining();
|
||||||
int compressedSize = SnappyNative.rawCompress(uncompressed, uPos, uLen, compressed, compressed.position());
|
int compressedSize = SnappyNative.rawCompress(uncompressed, uPos, uLen, compressed, compressed.position());
|
||||||
|
|
||||||
// pos limit
|
// // pos limit
|
||||||
// [ ....XXXXXX.........]
|
// // [ ....XXXXXX.........]
|
||||||
uncompressed.limit(uncompressed.capacity());
|
// uncompressed.limit(uncompressed.capacity());
|
||||||
uncompressed.position(uPos + uLen);
|
// uncompressed.position(uPos + uLen);
|
||||||
|
|
||||||
// pos limit
|
// pos limit
|
||||||
// [ ......BBBBBBB.........]
|
// [ ......BBBBBBB.........]
|
||||||
@ -69,8 +69,8 @@ public class Snappy
|
|||||||
|
|
||||||
boolean ret = SnappyNative.rawDecompress(compressed, cPos, cLen, decompressed, decompressed.position());
|
boolean ret = SnappyNative.rawDecompress(compressed, cPos, cLen, decompressed, decompressed.position());
|
||||||
|
|
||||||
compressed.limit(compressed.capacity());
|
// compressed.limit(compressed.capacity());
|
||||||
compressed.position(cPos + cLen);
|
// compressed.position(cPos + cLen);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -62,11 +62,8 @@ JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_maxCompressedLength
|
|||||||
JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_getUncompressedLength
|
JNIEXPORT jint JNICALL Java_org_xerial_snappy_SnappyNative_getUncompressedLength
|
||||||
(JNIEnv * env, jclass self, jobject compressed, jint cpos, jint clen)
|
(JNIEnv * env, jclass self, jobject compressed, jint cpos, jint clen)
|
||||||
{
|
{
|
||||||
char* compressedBuffer = (char*) env->GetDirectBufferAddress(compressed);
|
char* compressedBuffer = (char*) env->GetDirectBufferAddress(compressed) + cpos;
|
||||||
if(compressedBuffer == 0)
|
size_t result;
|
||||||
return (jint) -1;
|
|
||||||
compressedBuffer += cpos;
|
|
||||||
|
|
||||||
snappy::GetUncompressedLength(compressedBuffer, (size_t) clen, &result);
|
snappy::GetUncompressedLength(compressedBuffer, (size_t) clen, &result);
|
||||||
return (jint) result;
|
return (jint) result;
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -55,11 +55,19 @@ public class SnappyTest
|
|||||||
int maxCompressedLen = Snappy.getMaxCompressedLength(src.remaining());
|
int maxCompressedLen = Snappy.getMaxCompressedLength(src.remaining());
|
||||||
_logger.info("max compressed length:" + maxCompressedLen);
|
_logger.info("max compressed length:" + maxCompressedLen);
|
||||||
|
|
||||||
int uncompressedLen = Snappy.getUncompressedLength(src);
|
ByteBuffer compressed = ByteBuffer.allocateDirect(1024);
|
||||||
|
int compressedSize = Snappy.compress(src, compressed);
|
||||||
|
_logger.info("compressed size: " + compressedSize);
|
||||||
|
|
||||||
|
int uncompressedLen = Snappy.getUncompressedLength(compressed);
|
||||||
_logger.info("uncompressed length: " + uncompressedLen);
|
_logger.info("uncompressed length: " + uncompressedLen);
|
||||||
|
ByteBuffer extract = ByteBuffer.allocateDirect(1024);
|
||||||
|
Snappy.decompress(compressed, extract);
|
||||||
|
extract.limit(uncompressedLen);
|
||||||
|
|
||||||
ByteBuffer dest = ByteBuffer.allocateDirect(1024);
|
byte[] b = new byte[uncompressedLen];
|
||||||
Snappy.compress(src, dest);
|
extract.get(b);
|
||||||
|
String decompressed = new String(b);
|
||||||
|
_logger.info(decompressed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user