public static long extractVersion(CacheEntry ce) { if (ce == null) return -1; EntryVersion entryVersion = ce.getMetadata().version(); long version = 0; if (entryVersion != null) { if (entryVersion instanceof NumericVersion) { version = NumericVersion.class.cast(entryVersion).getVersion(); } if (entryVersion instanceof SimpleClusteredVersion) { version = SimpleClusteredVersion.class.cast(entryVersion).getVersion(); } } return version; }
private ByteBuf buildSingleGetWithVersionResponse(byte[] k, CacheEntry<byte[], byte[]> entry) { byte[] v = entry.getValue(); // TODO: Would be nice for EntryVersion to allow retrieving the version itself... byte[] version = String.valueOf(((NumericVersion) entry.getMetadata().version()).getVersion()).getBytes(); ByteBuf buf = buildGetHeaderBegin(k, entry, version.length + 1 + END_SIZE); buf.writeByte(SP); // 1 buf.writeBytes(version); // version.length writeGetHeaderData(v, buf); return writeGetHeaderEnd(buf); }
@Override public byte[] convert(byte[] key, byte[] oldValue, Metadata oldMetadata, byte[] newValue, Metadata newMetadata, EventType eventType) { int capacity = UnsignedNumeric.sizeUnsignedInt(key.length) + key.length + (newValue != null ? UnsignedNumeric.sizeUnsignedInt(newValue.length) + newValue.length + 8 : 0); if (newValue == null && returnOldValue && oldValue != null) { capacity += UnsignedNumeric.sizeUnsignedInt(oldValue.length) + oldValue.length + 8; } byte[] out = new byte[capacity]; int offset = UnsignedNumeric.writeUnsignedInt(out, 0, key.length); offset += putBytes(key, offset, out); if (newValue != null) { offset += UnsignedNumeric.writeUnsignedInt(out, offset, newValue.length); offset += putBytes(newValue, offset, out); putLong(((NumericVersion) newMetadata.version()).getVersion(), offset, out); } if (newValue == null && returnOldValue && oldValue != null) { offset += UnsignedNumeric.writeUnsignedInt(out, offset, oldValue.length); offset += putBytes(oldValue, offset, out); putLong(((NumericVersion) newMetadata.version()).getVersion(), offset, out); } return out; }
private long serverDataVersion(byte[] k, Cache cache) { CacheEntry cacheEntry = cache.getAdvancedCache().getCacheEntry(k); Metadata metadata = cacheEntry.getMetadata(); EntryVersion version = metadata.version(); return ((NumericVersion) version).getVersion(); }
@CacheEntryCreated @CacheEntryModified @CacheEntryRemoved @CacheEntryExpired public void onCacheEvent(CacheEntryEvent<byte[], byte[]> event) { if (isSendEvent(event)) { long version; Metadata metadata; if ((metadata = event.getMetadata()) != null && metadata.version() != null) { version = ((NumericVersion) metadata.version()).getVersion(); } else { version = 0; } Object k = event.getKey(); Object v = event.getValue(); sendEvent((byte[]) k, (byte[]) v, version, event); } }
long version; if (numericVersion != null) { version = numericVersion.getVersion(); } else { version = 0;