1 28 29 package com.caucho.db.index; 30 31 34 public class LongKeyCompare extends KeyCompare { 35 38 public int compare(byte []keyBuffer, int keyOffset, 39 byte []block, int offset, int length) 40 { 41 long key = (((keyBuffer[keyOffset + 0] & 0xffL) << 56) + 42 ((keyBuffer[keyOffset + 1] & 0xffL) << 48) + 43 ((keyBuffer[keyOffset + 2] & 0xffL) << 40) + 44 ((keyBuffer[keyOffset + 3] & 0xffL) << 32) + 45 46 ((keyBuffer[keyOffset + 4] & 0xffL) << 24) + 47 ((keyBuffer[keyOffset + 5] & 0xffL) << 16) + 48 ((keyBuffer[keyOffset + 6] & 0xffL) << 8) + 49 ((keyBuffer[keyOffset + 7] & 0xffL) << 0)); 50 51 long value = (((block[offset + 0] & 0xffL) << 56) + 52 ((block[offset + 1] & 0xffL) << 48) + 53 ((block[offset + 2] & 0xffL) << 40) + 54 ((block[offset + 3] & 0xffL) << 32) + 55 56 ((block[offset + 4] & 0xffL) << 24) + 57 ((block[offset + 5] & 0xffL) << 16) + 58 ((block[offset + 6] & 0xffL) << 8) + 59 ((block[offset + 7] & 0xffL) << 0)); 60 61 if (key == value) 62 return 0; 63 else if (key < value) 64 return -1; 65 else 66 return 1; 67 } 68 } 69 | Popular Tags |