public void write(object obj, IProtocolFormatter formatter) { ReferenceCache referenceCache = formatter.GetReferenceCache(); int refId = referenceCache.GetObjectId(obj); if (refId != -1) { #if FULL_BUILD if (VectorUtils.IsVector(obj) && formatter is AmfV3Formatter) { Type collectionType = obj.GetType(); AmfV3Formatter amfV3Formatter = (AmfV3Formatter)formatter; if (VectorUtils.isIntType(collectionType)) { amfV3Formatter.WriteVarIntWithoutMarker(Datatypes.INT_VECTOR_V3); } else if (VectorUtils.isUIntType(collectionType)) { amfV3Formatter.WriteVarIntWithoutMarker(Datatypes.UINT_VECTOR_V3); } else if (VectorUtils.isNumberType(collectionType)) { amfV3Formatter.WriteVarIntWithoutMarker(Datatypes.DOUBLE_VECTOR_V3); } else { amfV3Formatter.WriteVarIntWithoutMarker(Datatypes.OBJECT_VECTOR_V3); } amfV3Formatter.WriteVarIntWithoutMarker(refId << 1); } else #endif if (obj is IWebORBArrayCollection || obj is IDictionary) { formatter.WriteObjectReference(refId); } else if (obj is ICollection || obj is Array || obj is IWebORBArray) { formatter.WriteArrayReference(refId); } } else { referenceCache.AddObject(obj); formatter.getContextWriter().write(obj, formatter); } }
public void write(object obj, IProtocolFormatter formatter) { ReferenceCache referenceCache = formatter.GetReferenceCache(); int refId = referenceCache.GetStringId(obj); if (refId != -1) { formatter.WriteStringReference(refId); } else { referenceCache.AddString(obj); formatter.getContextWriter().write(obj, formatter); } }
public virtual void write(object obj, IProtocolFormatter formatter) { ReferenceCache referenceCache = formatter.GetReferenceCache(); DateTime date = (DateTime)obj; int refId = referenceCache.GetObjectId(date.ToUniversalTime()); if (refId != -1) { formatter.WriteDateReference(refId); } else { referenceCache.AddObject(date.ToUniversalTime()); formatter.getContextWriter().write(obj, formatter); } }
public void write(object obj, IProtocolFormatter writer) { int refId = -1; ReferenceCache referenceCache = null; if (isReferenceable) { referenceCache = writer.GetReferenceCache(); refId = referenceCache.GetStringId(obj); } if (refId != -1) { writer.WriteStringReference(refId); } else { if (isReferenceable) { referenceCache.AddString(obj); } //formatter.getContextWriter().write( obj, formatter ); if (obj is string) { writer.WriteString((string)obj); } else if (obj is StringBuilder) { writer.WriteString(((StringBuilder)obj).ToString()); } else if (obj is Char) { writer.WriteString(obj.ToString()); } else if (obj is char[]) { writer.WriteString(new String((char[])obj)); } } }