public int store(char[] array, int start, int length) { make_space(length); char[] correct_page = storage[last_page]; int postogo = last_page_pos + last_page * PAGE_SIZE; // System.out.println("Storing length "+ length+" at index "+ last_page_pos); synchronized (correct_page) { correct_page[last_page_pos++] = (char)length; System.arraycopy(array, start, correct_page, last_page_pos, length); } last_page_pos += length; return postogo; }
public int store(CharWrap wrap) { return store(wrap.storage, wrap.offset, wrap.size); }
public int storeunique(CharWrap wrap) { return storeunique(wrap.storage, wrap.offset, wrap.size); }
int[] indices = new int[7]; for (int i = 0; i < 7; ++ i) { indices[i] = vat.store(buffer, 0, i); System.out.println("String "+i+" stored "+vat.toString(indices[i])+" at index "+indices[i]); System.out.println("Found "+vat.toString(indices[i])+" at index "+indices[i]); int index1 = vat.storeunique(buffer, 0, 6); int index2 = vat.storeunique(buffer, 0, 6); System.out.println("Storeunique on identicals: "+index1+" and "+ index2); System.out.println("Equals: "+ vat.equals(index1, buffer, 0, 6)); buffer[5] = '2'; int index3 = vat.storeunique(buffer, 0, 6); System.out.println("Storeunique on nonidentical: "+index3); System.out.println("Equals: "+vat.equals(index1, buffer, 0, 6)); char[] buffer2 = {'w', 'o', 'r', 'l', 'd'}; svb.append(buffer2, 0, 5); int nextindex = vat.store(svb); System.out.println("String "+vat.toString(nextindex)+" stored at index "+nextindex); vat.appendto(svb, indices[6]); int finalindex = vat.store(svb); System.out.println("String "+vat.toString(finalindex)+" stored at index "+finalindex);
public int storeunique(char[] array, int start, int length) { int hash = CRC32.eatquick(array, start, length); int findindex = findindex(hash, array, start, length); if (findindex != IntEHInnaBox.INVALID_VALUE) return findindex; int newindex = store(array, start, length); indexhash.put(hash, newindex); return newindex; }
public int findindex(char[] array, int start, int length) { int hash = CRC32.eatquick(array, start, length); return findindex(hash, array, start, length); }