public void UpdateSnapshot() { var snapshotId = _snapshotResolver.ResolveSnapshotSetup(); var writer = new SnapshotWriter(); // record the current snapshot var data = "this is\r\na\r\ntest"; var token = SnapshotTokenizer.Tokenize(data); writer.Write(token, snapshotId); // ensure the data matches data.MatchSnapshot(); data = "this is\r\nnew\r\ndata"; token = SnapshotTokenizer.Tokenize(data); writer.Write(token, snapshotId); // ensure the data is updated data.MatchSnapshot(); //delete file and folder System.IO.File.Delete(snapshotId.GetFilePath()); }
public void SaveSnapshots() { var snapshotId = _snapshotResolver.ResolveSnapshotSetup(); var writer = new SnapshotWriter(); // record the current snapshot var dataOne = "this is\r\na\r\ntest"; var token = SnapshotTokenizer.Tokenize(dataOne) .SetMetadata(() => new { id = "one" }); writer.Write(token, snapshotId); var dataTwo = "this is\r\na second\r\ntest"; token = SnapshotTokenizer.Tokenize(dataTwo) .SetMetadata(() => new { id = "two" }); writer.Write(token, snapshotId); // ensure there are 2 snapshots in the file var reader = new SnapshotReader(); var saved = reader.Read(snapshotId); saved.Count().Should().Be(2); // match the snapshots dataOne.MatchSnapshot(() => new { id = "one" }); dataTwo.MatchSnapshot(() => new { id = "two" }); //delete file and folder System.IO.File.Delete(snapshotId.GetFilePath()); }
public void CreateSnapshot(long index, long term, ManualResetEventSlim allowFurtherModifications) { _snapshot = new SnapshotWriter(this, new Dictionary <string, int>(Data)) { Term = term, Index = index }; allowFurtherModifications.Set(); }
public void CreateSnapshot(long index, long term, ManualResetEventSlim allowFurtherModifications) { _snapshot = new SnapshotWriter(this, new Dictionary<string, int>(Data)) { Term = term, Index = index }; allowFurtherModifications.Set(); }
/// <summary> /// Initializes the logging of a new Simulation /// </summary> /// <param name="destination">Where to save the data</param> /// <param name="disease">The Disease used in the Simulation</param> public void Initialize(string destination, Disease disease, int mapX, int mapY, int simintervall, int snapintervall, long duration) { _simInfo = SimulationInfo.InitializeFromRuntime(disease, mapX, mapY, simintervall, snapintervall, duration); _target = destination; _snapshots = new Queue<TickSnapshot>(); _writer = new SnapshotWriter(); _writer.QueueEmptied += (s, e) => WriterQueueEmpty.Raise(s, e); _writer.SnapshotWritten += (s, e) => SnapshotWritten.Raise(s, e); TookSnapshot += _writer.Recieve; }
public void ApplySnapshot(long term, long index, Stream stream) { if (stream.CanSeek) { stream.Position = 0; } using (var streamReader = new StreamReader(stream)) Data = new ConcurrentDictionary <string, int>(_serializer.Deserialize <Dictionary <string, int> >(new JsonTextReader(streamReader))); _snapshot = new SnapshotWriter(this, new Dictionary <string, int>(Data)) { Term = term, Index = index }; }
public void SaveSnapshot() { var data = "this is\r\na\r\ntest"; var snapshotId = _snapshotResolver.ResolveSnapshotSetup(); var token = SnapshotTokenizer.Tokenize(data); var writer = new SnapshotWriter(); writer.Write(token, snapshotId); //reload snapshot to compare data.MatchSnapshot(); //delete file and folder System.IO.File.Delete(snapshotId.GetFilePath()); }
internal override void Invoke(string eventTopic, object source, object e) { SnapshotWriter snapshotWriter = null; base.MailItem = SmtpReceiveAgent.GetMailItem((EventArgs)e); if (base.MailItem != null && base.MailItem.SnapshotWriter != null && base.MailItem.PipelineTracingEnabled && base.SnapshotEnabled) { base.SnapshotWriter = base.MailItem.SnapshotWriter; this.WriteOriginalDataSnapshot(source, (EventArgs)e, eventTopic); snapshotWriter = base.SnapshotWriter; base.SnapshotWriter = null; } Delegate @delegate = (Delegate)base.Handlers[eventTopic]; if (@delegate == null) { return; } switch (eventTopic) { case "OnAuthCommand": ((AuthCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (AuthCommandEventArgs)e); break; case "OnDataCommand": if (!((ReceiveCommandEventSource)source).SmtpSession.DiscardingMessage) { ((SmtpServer)this.HostState).AddressBook.RecipientCache = base.MailItem.RecipientCache; ((DataCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (DataCommandEventArgs)e); } break; case "OnEhloCommand": ((EhloCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (EhloCommandEventArgs)e); break; case "OnProcessAuthentication": ((ProcessAuthenticationEventHandler)@delegate)((ReceiveCommandEventSource)source, (ProcessAuthenticationEventArgs)e); break; case "OnEndOfAuthentication": ((EndOfAuthenticationEventHandler)@delegate)((EndOfAuthenticationEventSource)source, (EndOfAuthenticationEventArgs)e); break; case "OnEndOfData": if (!((ReceiveMessageEventSource)source).SmtpSession.DiscardingMessage) { base.SnapshotWriter = snapshotWriter; ((SmtpServer)this.HostState).AddressBook.RecipientCache = base.MailItem.RecipientCache; base.EventArgId = ((ReceiveEventSource)source).SmtpSession.CurrentMessageTemporaryId; if (base.SnapshotWriter != null) { base.SnapshotWriter.WritePreProcessedData(this.GetHashCode(), "SmtpReceive", base.EventArgId, eventTopic, base.MailItem); } ((EndOfDataEventHandler)@delegate)((ReceiveMessageEventSource)source, (EndOfDataEventArgs)e); if (base.Synchronous) { base.EnsureMimeWriteStreamClosed(); if (base.SnapshotWriter != null) { base.SnapshotWriter.WriteProcessedData("SmtpReceive", base.EventArgId, eventTopic, base.Name, base.MailItem); } } } break; case "OnEndOfHeaders": if (!((ReceiveMessageEventSource)source).SmtpSession.DiscardingMessage) { base.SnapshotWriter = snapshotWriter; ((SmtpServer)this.HostState).AddressBook.RecipientCache = base.MailItem.RecipientCache; base.EventArgId = ((ReceiveEventSource)source).SmtpSession.CurrentMessageTemporaryId; if (base.SnapshotWriter != null) { base.SnapshotWriter.WritePreProcessedData(this.GetHashCode(), "SmtpReceive", base.EventArgId, eventTopic, base.MailItem); } ((EndOfHeadersEventHandler)@delegate)((ReceiveMessageEventSource)source, (EndOfHeadersEventArgs)e); if (base.Synchronous && base.SnapshotWriter != null) { ReceiveMessageEventSource receiveMessageEventSource = (ReceiveMessageEventSource)source; base.SnapshotWriter.WriteProcessedData("SmtpReceive", base.EventArgId, eventTopic, base.Name, base.MailItem); } } break; case "OnHeloCommand": ((HeloCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (HeloCommandEventArgs)e); break; case "OnHelpCommand": ((HelpCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (HelpCommandEventArgs)e); break; case "OnMailCommand": ((MailCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (MailCommandEventArgs)e); break; case "OnNoopCommand": ((NoopCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (NoopCommandEventArgs)e); break; case "OnRcptCommand": ((SmtpServer)this.HostState).AddressBook.RecipientCache = base.MailItem.RecipientCache; ((RcptCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (RcptCommandEventArgs)e); break; case "OnRcpt2Command": ((SmtpServer)this.HostState).AddressBook.RecipientCache = base.MailItem.RecipientCache; ((Rcpt2CommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (Rcpt2CommandEventArgs)e); break; case "OnReject": ((RejectEventHandler)@delegate)((RejectEventSource)source, (RejectEventArgs)e); break; case "OnRsetCommand": ((RsetCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (RsetCommandEventArgs)e); break; case "OnConnectEvent": ((ConnectEventHandler)@delegate)((ConnectEventSource)source, (ConnectEventArgs)e); break; case "OnDisconnectEvent": ((DisconnectEventHandler)@delegate)((DisconnectEventSource)source, (DisconnectEventArgs)e); break; case "OnStartTlsCommand": ((StartTlsEventHandler)@delegate)((ReceiveCommandEventSource)source, (StartTlsCommandEventArgs)e); break; case "OnProxyInboundMessage": ((ProxyInboundMessageEventHandler)@delegate)((ProxyInboundMessageEventSource)source, (ProxyInboundMessageEventArgs)e); break; case "OnXSessionParamsCommand": ((XSessionParamsCommandEventHandler)@delegate)((ReceiveCommandEventSource)source, (XSessionParamsCommandEventArgs)e); break; } if (base.Synchronous) { ((SmtpServer)this.HostState).AddressBook.RecipientCache = null; base.EventArgId = null; base.SnapshotWriter = null; base.MailItem = null; } }
public void ApplySnapshot(long term, long index, Stream stream) { if(stream.CanSeek) stream.Position = 0; using (var streamReader = new StreamReader(stream)) Data = new ConcurrentDictionary<string, int>(_serializer.Deserialize<Dictionary<string, int>>(new JsonTextReader(streamReader))); _snapshot = new SnapshotWriter(this, new Dictionary<string, int>(Data)) { Term = term, Index = index }; }