/// <summary> /// Collect data and provides. /// </summary> /// <param name="type"></param> private void Broadcast(Protocol.Type type = Protocol.Type.TYPE_UPDATE) { // Create snapshot. Protocol.Protocol protocol = new Protocol.Protocol { Type = type, Length = _Length }; foreach (ExtendedPlayer player in _Players) { if (player.Jumping > 0) { player.Player.Position.Jumping = true; } else { player.Player.Position.Jumping = false; } protocol.Players.Add(player.Player); } // Provide for broadcasting SnapshotCreated?.Invoke(new SnapshotArguments(protocol)); }
public void Handle(SnapshotCreated snapshotCreated) { //flush the queue _queue.CompleteAdding(); _writerThread.Join(); //notify actual writer _decoratedWriter.Handle(snapshotCreated); //restart Init(); }
public virtual async Task <ISnapshot> CreateSnapshotAsync(ISnapshot snapshot) { Argument.IsNotNull(() => snapshot); Log.Info($"Creating snapshot '{snapshot}'"); await SnapshotCreatingAsync.SafeInvokeAsync(this, new SnapshotEventArgs(snapshot)); var providers = GetProviders(); foreach (var provider in providers) { await provider.CreatingSnapshotAsync(snapshot); } foreach (var provider in providers) { Log.Debug($"Creating data for snapshot '{snapshot}' using provider '{provider}'"); var names = provider.GetNames(); foreach (var name in names) { Log.Debug($"Creating data for snapshot '{snapshot}' using provider '{provider}::{name}'"); byte[] providerData; using (var memoryStream = new MemoryStream()) { await provider.StoreDataToSnapshotAsync(name, memoryStream); providerData = memoryStream.ToArray(); } snapshot.SetData(name, providerData); } } foreach (var provider in providers) { await provider.CreatedSnapshotAsync(snapshot); } SnapshotCreated.SafeInvoke(this, () => new SnapshotEventArgs(snapshot)); Log.Info($"Created snapshot '{snapshot}'"); return(snapshot); }
public void Handle(SnapshotCreated snapshotCreated) { //no op }
public void Handle(SnapshotCreated snapshotCreated) { Rollover(snapshotCreated.Revision + 1); }
protected virtual void OnSnapshotCreated(Snapshot snapshot) { Active = false; SnapshotCreated?.Invoke(this, snapshot); }