/** * Writes the data in the object to the DNA strand supplied. */ @Override public void toDNA(final TCByteBufferOutputStream out, final ObjectStringSerializer serializer, final DNAType type) { final DNAWriter writer = new ObjectDNAWriterImpl(out, this.id, getClassname(), serializer, DNA_STORAGE_ENCODING, this.version, false); this.state.dehydrate(this.id, writer, type); writer.markSectionEnd(); writer.finalizeHeader(); }
@Override public void writeTo(final TCByteBufferOutputStream dest) { // XXX: make a writeInt() and writeLong() methods on Mark. Maybe ones that take offsets too // This check is needed since this buffer might need to be resent upon server crash if (this.committed.attemptSet()) { this.txnCountMark.write(Conversion.int2Bytes(this.txnCount)); this.changesCountMark.write(Conversion.int2Bytes(this.writers.size())); for (final Iterator i = this.writers.values().iterator(); i.hasNext();) { final DNAWriter writer = (DNAWriter) i.next(); writer.finalizeHeader(); } } if (!this.needsCopy) { dest.write(this.output.toArray()); return; } final int expect = this.output.getBytesWritten(); final int begin = dest.getBytesWritten(); this.startMark.copyTo(dest, this.headerLength); for (final Iterator i = this.writers.entrySet().iterator(); i.hasNext();) { final Map.Entry entry = (Entry) i.next(); final DNAWriter writer = (DNAWriter) entry.getValue(); writer.copyTo(dest); } Assert.assertEquals(expect, dest.getBytesWritten() - begin); }
@Override public void writeTo(final TCByteBufferOutputStream dest) { // XXX: make a writeInt() and writeLong() methods on Mark. Maybe ones that take offsets too // This check is needed since this buffer might need to be resent upon server crash if (this.committed.attemptSet()) { this.txnCountMark.write(Conversion.int2Bytes(this.txnCount)); this.changesCountMark.write(Conversion.int2Bytes(this.writers.size())); for (final Iterator i = this.writers.values().iterator(); i.hasNext();) { final DNAWriter writer = (DNAWriter) i.next(); writer.finalizeHeader(); } } if (!this.needsCopy) { dest.write(this.output.toArray()); return; } final int expect = this.output.getBytesWritten(); final int begin = dest.getBytesWritten(); this.startMark.copyTo(dest, this.headerLength); for (final Iterator i = this.writers.entrySet().iterator(); i.hasNext();) { final Map.Entry entry = (Entry) i.next(); final DNAWriter writer = (DNAWriter) entry.getValue(); writer.copyTo(dest); } Assert.assertEquals(expect, dest.getBytesWritten() - begin); }