public void AddRawEvent(RawApplicationEvent rae) { VerifyChainExists(); SingleOriginEvent soe = chain.Parse(rae); outwardBound.AddEvent(soe); }
protected override void ActualAddEntry(SingleOriginEvent ee) { EventEntryStoredElement newElement = new EventEntryStoredElement(ee, null, null); lock (lst) { lst.Add(newElement); } }
/// <summary> /// Calls each link in the chain attempting to create the event from the raw data. /// </summary> /// <param name="rae">The raw data</param> /// <returns>The formed single origin event</returns> public SingleOriginEvent Parse(RawApplicationEvent rae) { SingleOriginEvent result = TryParse(rae); if ((result == null) && (nextLink != null)) { result = nextLink.Parse(rae); } return(result); }
public bool IncludeEvent(SingleOriginEvent evt) { //b.Assert.True(chain != null, "Should not be possible, the constructor should force the chain to be initialised"); if (evt == null) { throw new InvalidOperationException("The event can not be empty, you must have passed an event to check"); } return(chain.IncludeEvent(evt)); }
protected override SingleOriginEvent TryParse(RawApplicationEvent rae) { if (IsV1TextString(rae.Text)) { var result = new SingleOriginEvent(rae.Id); return(result); } else { return(null); } }
public SingleOriginEvent Parse(RawApplicationEvent rae) { #region entry code //b.Assert.True(ActiveChain != null, "The active chain must be completed before you are able to parse any entries"); #endregion SingleOriginEvent result = ActiveChain.Parse(rae); // Fallback identity provider if the parser hasnt set it. if ((result != null) && (result.OriginIdentity < 0)) { result.OriginIdentity = identityProvider.GetOriginIdentity(rae.Machine, rae.Process); } return(result); }
protected override SingleOriginEvent TryParse(RawApplicationEvent rae) { if (rae == null) { return(null); } if (IsValidV2FormattedString(rae.Text)) { SingleOriginEvent soe = new SingleOriginEvent(rae.Id); if (PopulateFromDebugString(rae.Text, soe)) { return(soe); } } return(null); }
private bool PopulateFromDebugString(string debugString, SingleOriginEvent output) { if (groupMatchRegexCache == null) { groupMatchRegexCache = new Regex(V2MESSAGEPARSERREGEX, RegexOptions.Compiled); } Match m = groupMatchRegexCache.Match(debugString); // This should return 5 matches for a legit debug string string machineName = m.Captures[0].Value.Trim(new char[] { '[', ']' }); m = m.NextMatch(); string processId = m.Captures[0].Value.Trim(new char[] { '[', ']' }); m = m.NextMatch(); if (this.IdentityProvider != null) { output.OriginIdentity = this.IdentityProvider.GetOriginIdentity(machineName, processId); } output.ThreadId = m.Captures[0].Value.Trim(new char[] { '[', ']' }); m = m.NextMatch(); output.netThreadId = m.Captures[0].Value.Trim(new char[] { '[', ']' }); m = m.NextMatch(); output.ModuleName = m.Captures[0].Value.Trim(new char[] { '[', ']' }); m = m.NextMatch(); output.LineNumber = m.Captures[0].Value.Trim(new char[] { '[', ']' }); m = m.NextMatch(); output.moreLocInfo = m.Captures[0].Value.Trim(new char[] { '[', ']' }); // Now get the command type and turn it into an enum Match cmdMatch = Regex.Match(debugString, V2COMMANDIDENTIFIERREGEX); output.Type = ConvertCommandTypeToMessageType(cmdMatch.Captures[0].Value); // finally get the rest of the string as the debug message output.Text = debugString.Substring(cmdMatch.Index + V2COMMANDSTRINGLENGTH); // commandstrlen currently 5 return(true); }
protected abstract void ActualAddEntry(SingleOriginEvent ee);
public void AddEntry(SingleOriginEvent ee) { currentCount++; ActualAddEntry(ee); }
public void AddEvent(SingleOriginEvent soe) { primary.AddEntry(soe); }
protected override bool Execute(SingleOriginEvent evt) { throw new NotImplementedException(); }