public TimelinePostprocessorOutput(XDocument doc, ILogSource logSource, IEntitiesComparer entitiesComparer, ILogPartTokenFactory rotatedLogPartFactory) { this.logSource = logSource; var eventsDeserializer = new EventsDeserializer(TextLogEventTrigger.DeserializerFunction); this.timelineEvents = eventsDeserializer.Deserialize(doc.Root).ToList().AsReadOnly(); this.rotatedLogPartToken = rotatedLogPartFactory.SafeDeserializeLogPartToken(doc.Root); }
public TimelinePostprocessorOutput(LogSourcePostprocessorDeserializationParams p, IEntitiesComparer entitiesComparer, ILogPartTokenFactories logPartTokenFactories) { this.logSource = p.LogSource; if (!p.Reader.ReadToFollowing("root")) { throw new FormatException(); } etag.Read(p.Reader); var eventsDeserializer = new EventsDeserializer(TextLogEventTrigger.DeserializerFunction); var events = new List <Event>(); foreach (var elt in p.Reader.ReadChildrenElements()) { if (eventsDeserializer.TryDeserialize(elt, out var evt)) { events.Add(evt); } else if (logPartTokenFactories.TryReadLogPartToken(elt, out var tmp)) { this.rotatedLogPartToken = tmp; } p.Cancellation.ThrowIfCancellationRequested(); } this.timelineEvents = events.AsReadOnly(); }
public TimelineBuilder(IEntitiesComparer entitiesComparer, IUserNamesProvider shortNames) { this.entitiesComparer = entitiesComparer; this.shortNames = shortNames; }