private static BodyReadStream InternalTryCreateBodyStream(ICoreItem coreItem, BodyReadConfiguration configuration, bool createEmtpyStreamIfNotFound, long?length) { BodyReadStream result; using (DisposeGuard disposeGuard = default(DisposeGuard)) { Stream stream = BodyReadStream.OpenBodyStream(coreItem); disposeGuard.Add <Stream>(stream); Stream stream2 = stream; if (stream2 == null) { if (!createEmtpyStreamIfNotFound) { return(null); } stream2 = Body.GetEmptyStream(); } ConversionCallbackBase conversionCallbackBase; Stream disposable = BodyReadDelegates.CreateStream(coreItem, configuration, stream2, out conversionCallbackBase); disposeGuard.Add <Stream>(disposable); BodyReadStream bodyReadStream = new BodyReadStream(stream, disposable, conversionCallbackBase, length); disposeGuard.Add <BodyReadStream>(bodyReadStream); disposeGuard.Success(); result = bodyReadStream; } return(result); }
internal BodyTextReader(ICoreItem coreItem, BodyReadConfiguration configuration, Stream inputStream) { using (DisposeGuard disposeGuard = this.Guard()) { Stream stream = null; TextReader textReader = null; bool flag = false; this.disposeTracker = this.GetDisposeTracker(); try { if (inputStream == null) { stream = BodyReadStream.OpenBodyStream(coreItem); inputStream = stream; } if (inputStream == null) { inputStream = Body.GetEmptyStream(); } textReader = BodyReadDelegates.CreateReader(coreItem, configuration, inputStream, out this.conversionCallbacks); flag = true; } finally { if (!flag && stream != null) { stream.Dispose(); } } this.reader = textReader; this.bodyStream = stream; this.isDisposed = false; disposeGuard.Success(); } }
public int GetLastNBytesAsString(int lastNBytesToRead, out string readString) { int result; using (Stream stream = BodyReadStream.OpenBodyStream(this.coreItem)) { readString = null; byte[] bytes; int num = Util.StreamHandler.ReadLastBytesOfStream(stream, lastNBytesToRead, out bytes); if (num > 0) { readString = this.GetBodyEncoding().GetString(bytes, 0, num); } result = num; } return(result); }