Mercurial > hg > blitz_stable
diff src/org/dancres/blitz/entry/LeaseRecordUtils.java @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/dancres/blitz/entry/LeaseRecordUtils.java Sat Mar 21 11:00:06 2009 +0000 @@ -0,0 +1,73 @@ +package org.dancres.blitz.entry; + +import org.dancres.util.BytePacker; +import org.dancres.blitz.oid.OIDFactory; + +class LeaseRecordUtils { + static boolean isKey(byte[] anEntry, byte[] aPackedOid) { + for (int i = 0; i < aPackedOid.length; i++) { + if (anEntry[8 + i] != aPackedOid[i]) + return false; + } + + return true; + } + + static byte[] getLeaseEntry(PersistentEntry anEntry) { + byte[] myEntry = new byte[8 + OIDFactory.KEY_SIZE]; + BytePacker myPacker = BytePacker.getMSBPacker(myEntry); + + myPacker.putLong(anEntry.getExpiry(), 0); + myPacker.putArray(anEntry.getKey(), 8); + + // dumpHex("leaseentry", myEntry); + + return myEntry; + } + + static byte[] getId(PersistentEntry anEntry) { + // dumpHex("getSleeveKey", aSleeve.getKey()); + + return anEntry.getKey(); + } + + static byte[] getBucketKey(PersistentEntry anEntry) { + return getBucketKey(anEntry.getOID().getZoneId()); + } + + static byte[] getBucketKey(int anId) { + byte[] myKey = new byte[4]; + BytePacker myPacker = BytePacker.getMSBPacker(myKey); + myPacker.putInt(anId, 0); + + // dumpHex("bucketKey", myKey); + + return myKey; + } + + static long unpackExpiry(byte[] aLeaseRecord) { + BytePacker myPacker = BytePacker.getMSBPacker(aLeaseRecord); + + // System.err.println("Unpack expiry: " + myPacker.getLong(0)); + + return myPacker.getLong(0); + } + + static byte[] unpackId(byte[] aLeaseRecord) { + BytePacker myPacker = BytePacker.getMSBPacker(aLeaseRecord); + + // System.err.println("Unpack id: " + myPacker.getLong(8)); + + return myPacker.getArray(8, OIDFactory.KEY_SIZE); + } + + private static void dumpHex(String aTitle, byte[] anArray) { + System.err.println(); + System.err.println(aTitle); + for (int i = 0; i < anArray.length; i++) { + System.err.print(Integer.toHexString(anArray[i]) + " "); + } + + System.err.println(); + } +}