private<O> O staticBuffer2Object(final StaticBuffer s, Class<O> dataType) { Object value = serializer.readClassAndObject(s.asReadBuffer()); Preconditions.checkArgument(dataType.isInstance(value),"Could not deserialize to [%s], got: %s",dataType,value); return (O)value; }
@Override public ReadBuffer subrange(int length, boolean invert) { return super.subrange(position,length,invert).asReadBuffer(); }
public static String getString(StaticBuffer b) { return serial.readObjectNotNull(b.asReadBuffer(), String.class); }
public Collection<Modification> getContentAsModifications(Serializer serializer) { Preconditions.checkArgument(status==LogTxStatus.PRECOMMIT || status==LogTxStatus.USER_LOG); List<Modification> mods = Lists.newArrayList(); ReadBuffer in = content.asReadBuffer(); mods.addAll(readModifications(Change.ADDED,in,serializer)); mods.addAll(readModifications(Change.REMOVED,in,serializer)); return mods; }
private SecondaryFailures(StaticBuffer content, Serializer serializer) { ReadBuffer in = content.asReadBuffer(); this.userLogFailure = !in.getBoolean(); int size = in.getInt(); ImmutableSet.Builder<String> builder = ImmutableSet.builder(); for (int i = 0; i < size; i++) { builder.add(serializer.readObjectNotNull(in,String.class)); } this.failedIndexes = builder.build(); }
public long getIndexIdFromKey(StaticBuffer key) { if (hashKeys) key = HashingUtil.getKey(hashLength,key); return VariableLong.readPositive(key.asReadBuffer()); }
@Override public void read(Message message) { ReadBuffer content = message.getContent().asReadBuffer(); String senderId = message.getSenderId(); TransactionLogHeader.Entry txentry = TransactionLogHeader.parse(content,serializer,times); TransactionLogHeader txheader = txentry.getHeader(); StandardTransactionId transactionId = new StandardTransactionId(senderId,txheader.getId(), txheader.getTimestamp()); TxEntry entry; try { entry = txCache.get(transactionId,entryFactory); } catch (ExecutionException e) { throw new AssertionError("Unexpected exception",e); } entry.update(txentry); }
final StandardTransactionId transactionId; try { ReadBuffer content = message.getContent().asReadBuffer(); String senderId = message.getSenderId(); TransactionLogHeader.Entry transactionEntry = TransactionLogHeader.parse(content, serializer, times);
@Override public void read(Message message) { ReadBuffer in = message.getContent().asReadBuffer(); String senderId = message.getSenderId(); Serializer serializer = graph.getDataSerializer();
public TimestampRid fromLockColumn(StaticBuffer lockKey, TimestampProvider provider) { ReadBuffer r = lockKey.asReadBuffer(); int len = r.length(); long tsNS = r.getLong(); len -= 8; byte[] curRid = new byte[len]; for (int i = 0; r.hasRemaining(); i++) { curRid[i] = r.getByte(); } StaticBuffer rid = new StaticArrayBuffer(curRid); Instant time = provider.getTime(tsNS); return new TimestampRid(time, rid); } }
public static Entry parse(StaticBuffer buffer, Serializer serializer, TimestampProvider times) { ReadBuffer read = buffer.asReadBuffer(); Instant txTimestamp = times.getTime(read.getLong()); TransactionLogHeader header = new TransactionLogHeader(VariableLong.readPositive(read), txTimestamp, times); LogTxStatus status = serializer.readObjectNotNull(read,LogTxStatus.class); final EnumMap<LogTxMeta,Object> metadata = new EnumMap<>(LogTxMeta.class); int metaSize = VariableLong.unsignedByte(read.getByte()); for (int i=0;i<metaSize;i++) { LogTxMeta meta = LogTxMeta.values()[VariableLong.unsignedByte(read.getByte())]; metadata.put(meta,serializer.readObjectNotNull(read,meta.dataType())); } if (read.hasRemaining()) { StaticBuffer content = read.subrange(read.getPosition(),read.length()-read.getPosition()); return new Entry(header,content, status,metadata); } else { return new Entry(header,null, status,metadata); } }