internal override long WriteTo(Stream stream, EncodingOptions encodingOptions, MimeOutputFilter filter, ref MimeStringLength currentLineLength, ref byte[] scratchBuffer) { long num = this.WriteName(stream, ref scratchBuffer); currentLineLength.IncrementBy((int)num); bool flag = false; if (!this.IsDirty && this.RawLength != 0) { if (this.IsProtected) { num += Header.WriteLines(this.lines, stream); currentLineLength.SetAs(0); return(num); } if (!this.IsHeaderLineTooLong(num, out flag)) { num += Header.WriteLines(this.lines, stream); currentLineLength.SetAs(0); return(num); } } MimeStringList fragments = this.lines; if (flag) { fragments = Header.MergeLines(fragments); } num += Header.QuoteAndFold(stream, fragments, 4026531840U, false, fragments.Length > 0, encodingOptions.AllowUTF8, 0, ref currentLineLength, ref scratchBuffer); return(num + Header.WriteLineEnd(stream, ref currentLineLength)); }
internal override long WriteTo(Stream stream, EncodingOptions encodingOptions, MimeOutputFilter filter, ref MimeStringLength currentLineLength, ref byte[] scratchBuffer) { long num = base.WriteName(stream, ref scratchBuffer); currentLineLength.IncrementBy((int)num); if (!base.IsDirty && base.RawLength != 0 && base.IsProtected) { long num2 = Header.WriteLines(base.Lines, stream); num += num2; currentLineLength.SetAs(0); return(num); } if (!this.parsed) { this.Parse(); } num += this.WriteValue(stream, encodingOptions, filter, ref currentLineLength, ref scratchBuffer); for (MimeNode mimeNode = base.FirstChild; mimeNode != null; mimeNode = mimeNode.NextSibling) { stream.Write(MimeString.Semicolon, 0, MimeString.Semicolon.Length); num += (long)MimeString.Semicolon.Length; currentLineLength.IncrementBy(MimeString.Semicolon.Length); num += mimeNode.WriteTo(stream, encodingOptions, filter, ref currentLineLength, ref scratchBuffer); } return(num + Header.WriteLineEnd(stream, ref currentLineLength)); }
internal static long WriteLineEnd(Stream stream, ref MimeStringLength currentLineLength) { long num = 0L; stream.Write(MimeString.CrLf, 0, MimeString.CrLf.Length); num += (long)MimeString.CrLf.Length; currentLineLength.SetAs(0); return(num); }
// Token: 0x0600018B RID: 395 RVA: 0x00007074 File Offset: 0x00005274 internal override long WriteTo(Stream stream, EncodingOptions encodingOptions, MimeOutputFilter filter, ref MimeStringLength currentLineLength, ref byte[] scratchBuffer) { long num = base.WriteName(stream, ref scratchBuffer); currentLineLength.IncrementBy((int)num); if (!base.IsDirty && base.RawLength != 0) { if (base.IsProtected) { num += Header.WriteLines(base.Lines, stream); currentLineLength.SetAs(0); return(num); } if (base.InternalLastChild == null) { bool flag = false; if (!base.IsHeaderLineTooLong(num, out flag)) { num += Header.WriteLines(base.Lines, stream); currentLineLength.SetAs(0); return(num); } } } if (!this.parsed) { this.Parse(); } MimeNode mimeNode = base.FirstChild; int num2 = 0; while (mimeNode != null) { if (1 < ++num2) { stream.Write(MimeString.Comma, 0, MimeString.Comma.Length); num += (long)MimeString.Comma.Length; currentLineLength.IncrementBy(MimeString.Comma.Length); } num += mimeNode.WriteTo(stream, encodingOptions, filter, ref currentLineLength, ref scratchBuffer); mimeNode = mimeNode.NextSibling; } return(num + Header.WriteLineEnd(stream, ref currentLineLength)); }
// Token: 0x06000554 RID: 1364 RVA: 0x0001D1D4 File Offset: 0x0001B3D4 internal override long WriteTo(Stream stream, EncodingOptions encodingOptions, MimeOutputFilter filter, ref MimeStringLength currentLineLength, ref byte[] scratchBuffer) { long num = base.WriteName(stream, ref scratchBuffer); currentLineLength.IncrementBy((int)num); MimeStringList mimeStringList; if (base.RawLength == 0 && this.decodedValue != null && this.decodedValue.Length != 0) { mimeStringList = this.GetEncodedValue(encodingOptions, ValueEncodingStyle.Normal); } else if ((byte)(EncodingFlags.ForceReencode & encodingOptions.EncodingFlags) != 0) { this.ForceParse(); mimeStringList = this.GetEncodedValue(encodingOptions, ValueEncodingStyle.Normal); } else { bool flag = false; if (!base.IsDirty && base.RawLength != 0) { if (base.IsProtected) { num += Header.WriteLines(base.Lines, stream); currentLineLength.SetAs(0); return(num); } if (!base.IsHeaderLineTooLong(num, out flag)) { num += Header.WriteLines(base.Lines, stream); currentLineLength.SetAs(0); return(num); } } mimeStringList = base.Lines; if (flag) { mimeStringList = Header.MergeLines(mimeStringList); } } num += Header.QuoteAndFold(stream, mimeStringList, 4026531840U, false, mimeStringList.Length > 0, encodingOptions.AllowUTF8, 0, ref currentLineLength, ref scratchBuffer); return(num + Header.WriteLineEnd(stream, ref currentLineLength)); }
internal override long WriteTo(Stream stream, EncodingOptions encodingOptions, MimeOutputFilter filter, ref MimeStringLength currentLineLength, ref byte[] scratchBuffer) { long num = base.WriteName(stream, ref scratchBuffer); currentLineLength.IncrementBy((int)num); if (!base.IsDirty && base.RawLength != 0 && base.IsProtected) { long num2 = Header.WriteLines(base.Lines, stream); num += num2; currentLineLength.SetAs(0); return(num); } if (!this.parsed) { this.Parse(); } num += DateHeader.WriteDateHeaderValue(stream, this.utcDateTime, this.timeZoneOffset, ref currentLineLength); currentLineLength.SetAs(0); return(num); }
// Token: 0x06000237 RID: 567 RVA: 0x00009CEC File Offset: 0x00007EEC internal override long WriteTo(Stream stream, EncodingOptions encodingOptions, MimeOutputFilter filter, ref MimeStringLength currentLineLength, ref byte[] scratchBuffer) { MimePart.CountingWriteStream countingWriteStream = null; MimePart.CountingWriteStream countingWriteStream2 = null; long num = 0L; long num2 = 0L; if (filter != null) { countingWriteStream = (stream as MimePart.CountingWriteStream); if (countingWriteStream == null) { countingWriteStream2 = new MimePart.CountingWriteStream(stream); countingWriteStream = countingWriteStream2; stream = countingWriteStream; } num = countingWriteStream.Count; } for (MimeNode mimeNode = base.FirstChild; mimeNode != null; mimeNode = mimeNode.NextSibling) { if (filter == null || !filter.FilterHeader(mimeNode as Header, countingWriteStream)) { num2 += mimeNode.WriteTo(stream, encodingOptions, filter, ref currentLineLength, ref scratchBuffer); } } if (countingWriteStream != null) { num2 = countingWriteStream.Count - num; if (countingWriteStream2 != null) { countingWriteStream2.Dispose(); } } currentLineLength.SetAs(0); return(num2); }