private static TextStreamPosition FindBound(BoundFinder finder, Stream stm, Encoding encoding, string boundName, TextStreamPositioningParams textStreamPositioningParams) { TextStreamPosition?pos = finder.Find(stm, encoding, textStreamPositioningParams); if (!pos.HasValue) { throw new Exception(string.Format("Cannot detect the {0} of the log", boundName)); } return(pos.Value); }
internal MediaBasedPositionedMessagesReader( ILogMedia media, BoundFinder beginFinder, BoundFinder endFinder, MessagesReaderExtensions.XmlInitializationParams extensionsInitData, TextStreamPositioningParams textStreamPositioningParams, MessagesReaderFlags flags, Settings.IGlobalSettingsAccessor settingsAccessor ) { this.beginFinder = beginFinder; this.endFinder = endFinder; this.media = media; this.textStreamPositioningParams = textStreamPositioningParams; this.singleThreadedStrategy = new Lazy <BaseStrategy>(CreateSingleThreadedStrategy); this.multiThreadedStrategy = new Lazy <BaseStrategy>(CreateMultiThreadedStrategy); this.extensions = new MessagesReaderExtensions(this, extensionsInitData); this.flags = flags; this.settingsAccessor = settingsAccessor; }