public RawClassSpec readSpec(Transaction trans, ByteArrayBuffer reader) { byte[] nameBytes = readName(trans, reader); String className = trans.container().stringIO().read(nameBytes); readMetaClassID(reader); // skip int ancestorID = reader.readInt(); reader.incrementOffset(Const4.INT_LENGTH); // index ID int numFields = reader.readInt(); return new RawClassSpec(className, ancestorID, numFields); }
private byte[] readName(LatinStringIO sio, ByteArrayBuffer reader) { if (Deploy.debug) { reader.readBegin(Const4.YAPCLASS); } int len = reader.readInt(); len = len * sio.bytesPerChar(); byte[] nameBytes = new byte[len]; System.arraycopy(reader._buffer, reader._offset, nameBytes, 0, len); nameBytes = Platform4.updateClassName(nameBytes); reader.incrementOffset(len); return nameBytes; }
public void completeInterruptedTransaction(int transactionId1, int transactionId2) { if (!File4.exists(lockFileName(_fileName))) { return; } if (!lockFileSignalsInterruptedTransaction()) { return; } ByteArrayBuffer buffer = new ByteArrayBuffer(Const4.INT_LENGTH); openLogFile(); read(_logFile, buffer); int length = buffer.readInt(); if (length > 0) { buffer = new ByteArrayBuffer(length); read(_logFile, buffer); buffer.incrementOffset(Const4.INT_LENGTH); readWriteSlotChanges(buffer); } deleteLockFile(); closeLogFile(); deleteLogFile(); }