private void dehydrateFields(ObjectID objectId, DNAWriter writer) { writer.addPhysicalAction(TAKE_LOCK_FIELD_NAME, takeLockField); writer.addPhysicalAction(PUT_LOCK_FIELD_NAME, putLockField); writer.addPhysicalAction(CAPACITY_FIELD_NAME, capacityField); }
private void dehydrateMembers(ObjectID objectID, DNAWriter writer) { for (Object reference : references) { writer.addLogicalAction(SerializationUtil.PUT, new Object[] { reference }); } }
@Override public void dehydrate(final ObjectID objectID, final DNAWriter writer, final DNAType type) { for (Map.Entry<String, Object> entry : configMap.entrySet()) { writer.addPhysicalAction(entry.getKey(), entry.getValue()); } writer.addEntireArray(componentObjects); }
@Override public void write(DNAWriter to) { if (isSubarray()) { to.addSubArrayAction(index, value, length); } else { to.addArrayElementAction(index, value); } }
private void writePhysicalAction(final DNAWriter dnaWriter, final PhysicalAction action) { if (action.isTruePhysical()) { dnaWriter.addPhysicalAction(action.getFieldName(), action.getObject(), action.isReference()); } else if (action.isArrayElement()) { dnaWriter.addArrayElementAction(action.getArrayIndex(), action.getObject()); } else if (action.isEntireArray()) { dnaWriter.setArrayLength(Array.getLength(action.getObject())); dnaWriter.addEntireArray(action.getObject()); } else if (action.isSubArray()) { dnaWriter.addSubArrayAction(action.getArrayIndex(), action.getObject(), Array.getLength(action.getObject())); } else { throw new AssertionError("Unknown Physical Action : " + action); } }
Object parentObjectID = getDehydratableObject(parentObject, objectManager); if (parentObjectID != null) { writer.setParentObjectID((ObjectID) parentObjectID); writer.addPhysicalAction(fieldName, value, field.canBeReference());
@Override public void dehydrate(ClientObjectManager objectManager, TCObject tcObject, DNAWriter writer, Object pojo) { writer.setArrayLength(Array.getLength(pojo)); if (ClassUtils.isPrimitiveArray(pojo)) { writer.addEntireArray(pojo); } else { Object[] array = (Object[]) pojo; Object[] toEncode = new Object[array.length]; // convert to array of literals and ObjectID for (int i = 0, n = array.length; i < n; i++) { Object element = array[i]; if (!objectManager.isPortableInstance(element)) { toEncode[i] = ObjectID.NULL_ID; continue; } final Object obj = getDehydratableObject(element, objectManager); if (obj == null) { toEncode[i] = ObjectID.NULL_ID; } else { toEncode[i] = obj; } } writer.addEntireArray(toEncode); } }
@Override public void dehydrate(final ObjectID objectID, final DNAWriter writer, final DNAType type) { writer.addEntireArray(this.value); }
@Override public void write(DNAWriter writer) { writer.addLiteralValue(newValue); }
@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); }
Object parentObjectID = getDehydratableObject(parentObject, objectManager); if (parentObjectID != null) { writer.setParentObjectID((ObjectID) parentObjectID); writer.addPhysicalAction(fieldName, value, field.canBeReference());
@Override public void dehydrate(ClientObjectManager objectManager, TCObject tcObject, DNAWriter writer, Object pojo) { writer.setArrayLength(Array.getLength(pojo)); if (ClassUtils.isPrimitiveArray(pojo)) { writer.addEntireArray(pojo); } else { Object[] array = (Object[]) pojo; Object[] toEncode = new Object[array.length]; // convert to array of literals and ObjectID for (int i = 0, n = array.length; i < n; i++) { Object element = array[i]; if (!objectManager.isPortableInstance(element)) { toEncode[i] = ObjectID.NULL_ID; continue; } final Object obj = getDehydratableObject(element, objectManager); if (obj == null) { toEncode[i] = ObjectID.NULL_ID; } else { toEncode[i] = obj; } } writer.addEntireArray(toEncode); } }
@Override public void write(DNAWriter to) { if (isSubarray()) { to.addSubArrayAction(index, value, length); } else { to.addArrayElementAction(index, value); } }
@Override public void write(DNAWriter writer) { writer.addLiteralValue(newValue); }
@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); }
protected void dehydrateFields(final DNAWriter writer) { writer.addPhysicalAction(LOCK_TYPE_FIELDNAME, this.dsoLockType); writer.addPhysicalAction(MAX_TTI_SECONDS_FIELDNAME, this.maxTTISeconds); writer.addPhysicalAction(MAX_TTL_SECONDS_FIELDNAME, this.maxTTLSeconds); writer.addPhysicalAction(MAX_COUNT_IN_CLUSTER_FIELDNAME, this.targetMaxTotalCount); writer.addPhysicalAction(INVALIDATE_ON_CHANGE_FIELDNAME, this.invalidateOnChange); writer.addPhysicalAction(CACHE_NAME_FIELDNAME, this.cacheName); writer.addPhysicalAction(LOCAL_CACHE_ENABLED_FIELDNAME, this.localCacheEnabled); writer.addPhysicalAction(COMPRESSION_ENABLED_FIELDNAME, this.compressionEnabled); writer.addPhysicalAction(COPY_ON_READ_ENABLED_FIELDNAME, this.copyOnReadEnabled); writer.addPhysicalAction(EVICTION_ENABLED_FIELDNAME, this.evictionEnabled); }
public void dehydrate(final ApplicatorObjectManager objectManager, final TCObjectExternal tco, final DNAWriter writer, final Object pojo) { Map<String, Object> values = getAllFields(pojo); writer.addEntireArray(get(values, VALUE_FIELD)); writer.addPhysicalAction(CREATE_TIME_FIELD, get(values, CREATE_TIME_FIELD)); writer.addPhysicalAction(LAST_ACCESS_TIME_FIELD, get(values, LAST_ACCESS_TIME_FIELD)); }
@Override public void write(DNAWriter writer) { writer.addLogicalAction(method, parameters, logicalChangeID); }
@Override public void write(DNAWriter to) { if (isSubarray()) { to.addSubArrayAction(index, value, length); } else { to.addArrayElementAction(index, value); } }
@Override public void write(DNAWriter writer) { writer.addLiteralValue(newValue); }