]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.uuid/src/org/argeo/api/uuid/libuuid/DirectLibuuidFactory.java
1 package org
.argeo
.api
.uuid
.libuuid
;
3 import java
.nio
.ByteBuffer
;
6 import org
.argeo
.api
.uuid
.UuidBinaryUtils
;
7 import org
.argeo
.api
.uuid
.UuidFactory
;
10 * @deprecated Rather use {@link LibuuidFactory}. This is just a proof of
11 * concept that using shared memory in order to limit the JNI
12 * overhead does not yield any significant performance gain. But it
13 * could be an approach for computing and transferring bulk UUIDs
14 * computations in one go, via
15 * {@link ByteBuffer#allocateDirect(int)}.
17 public class DirectLibuuidFactory
implements UuidFactory
{
19 System
.loadLibrary("Java_org_argeo_api_uuid_libuuid." + APM
.MAJOR
+ "." + APM
.MINOR
);
28 public UUID
timeUUID() {
29 ByteBuffer buf
= ByteBuffer
.allocateDirect(16);
31 byte[] arr
= new byte[16];
33 return UuidBinaryUtils
.fromBytes(arr
);
36 protected native void timeUUID(ByteBuffer uuidBuf
);
39 public UUID
nameUUIDv5(UUID namespace
, byte[] data
) {
40 throw new UnsupportedOperationException();
44 public UUID
nameUUIDv3(UUID namespace
, byte[] data
) {
45 throw new UnsupportedOperationException();
49 public UUID
randomUUIDStrong() {
50 throw new UnsupportedOperationException();
54 public UUID
randomUUIDWeak() {
55 throw new UnsupportedOperationException();