public ORecordVersion readVersion() throws IOException { if (OVersionFactory.instance().isDistributed()) { final int recordVersion = readInt(); final long timestamp = readLong(); final long macAddress = readLong(); return OVersionFactory.instance() .createDistributedVersion(recordVersion, timestamp, macAddress); } else { final ORecordVersion version = OVersionFactory.instance().createVersion(); version.setCounter(readInt()); return version; } }
public void testUpdateOneSmallRecordVersionIsMinusTwo() throws IOException { byte[] smallRecord = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; ORecordVersion recordVersion = OVersionFactory.instance().createVersion(); recordVersion.increment(); recordVersion.increment(); OPhysicalPosition physicalPosition = paginatedCluster.createRecord(smallRecord, recordVersion, (byte) 1); Assert.assertEquals(physicalPosition.clusterPosition, OClusterPositionFactory.INSTANCE.valueOf(0)); ORecordVersion updateRecordVersion = OVersionFactory.instance().createVersion(); updateRecordVersion.setCounter(-2); smallRecord = new byte[] { 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3 }; paginatedCluster.updateRecord(physicalPosition.clusterPosition, smallRecord, updateRecordVersion, (byte) 2); ORawBuffer rawBuffer = paginatedCluster.readRecord(physicalPosition.clusterPosition); Assert.assertNotNull(rawBuffer); Assert.assertEquals(rawBuffer.version, recordVersion); Assert.assertEquals(rawBuffer.buffer, smallRecord); Assert.assertEquals(rawBuffer.recordType, 2); }