public void DoSequence(Bludger bludger) { lock (this) { broker.DoSequence(bludger); } }
public void DiffuseBludger(Bludger b) { foreach (var c in this.broker.GetChildren()) { c.Bludger(b); } }
public void ConfirmDeliver(Event e) { string publisherId = e.Publisher; lock (messages[publisherId]) { int dequed = messages[publisherId].Dequeue(); Monitor.PulseAll(messages[publisherId]); } lock (this) { while (this.sequencers.Count() > 0 && !HasMessage(this.sequencers.Peek())) { this.broker.DoSequence(sequencers.Dequeue()); } while (this.bludgers.Count() > 0 && !HasMessage(this.bludgers.Peek())) { this.broker.DoBludger(bludgers.Dequeue()); } } // If this is the first broker, we start a Sequence request if (e.Sender.Equals(this.broker.SiteName)) { Bludger bludger = new Bludger(e.Publisher, e.Topic, e.SequenceNumber); this.broker.Sequence(bludger); } }
public void DoBludger(Bludger bludger) { lock (this) { broker.DoBludger(bludger); } }
public void Bludger(Bludger bludger) { lock (this) { broker.Bludger(bludger); } }
public void Bludger(Bludger bludger) { if (bludgerRep.IsRepeated(bludger.Sequence, bludger.Publisher)) { return; } pool.AssyncInvoke(new WaitCallback(ProcessBludger), bludger); }
public void ProcessSequence(Object b) { Bludger bludger = b as Bludger; if (order.FreezeSequencerIfNeeded(bludger)) { return; } DoSequence(bludger); }
public void DoSequence(Bludger bludger) { if (this.IsRoot) { this.Bludger(bludger); } else { this.ParentSiteBroker.Sequence(bludger); } }
public void ProcessBludger(Object b) { Bludger bludger = b as Bludger; if (order.FreezeBludgerIfNeeded(bludger)) { return; } DoBludger(bludger); }
public void DoBludger(Bludger bludger) { this.router.DiffuseBludger(bludger); ICollection <NodePair <ISubscriber> > subscribersToSend = Data.SubscribersFor(bludger.Topic); foreach (var subscriberPair in subscribersToSend) { subscriberPair.Node.Bludger(bludger); } }
public bool FreezeBludgerIfNeeded(Bludger bludger) { lock (this) { if (this.HasMessage(bludger.Publisher, bludger.Sequence) || bludgers.Count > 0) { bludgers.Enqueue(bludger); return(true); } return(false); } }
public void DiffuseBludger(Bludger b) { ICollection <NodePair <IBroker> > brokersToSend = broker.Data.RoutingFor(b.Topic); foreach (NodePair <IBroker> brokerPair in brokersToSend) { if (!brokerPair.Name.Equals(this.broker.ParentName)) { brokerPair.Node.Bludger(b); } } }
public void Bludger(Bludger bludger) { this.BlockWhileFrozen(); lock (this) { if (blu.IsRepeated(bludger.Sequence, bludger.Publisher)) { return; } foreach (var e in freezer) { if (e.SequenceNumber == bludger.Sequence && e.Publisher == bludger.Publisher) { Console.WriteLine("Publisher: {0} Topic: {1} SN: {2}", e.Publisher, e.Topic, e.GetSequenceNumber()); logServer.LogAction("SubEvent " + name + " " + e.Publisher + " " + e.Topic + " " + e.SequenceNumber); return; } } } }
private bool HasMessage(Bludger bludger) { return(HasMessage(bludger.Publisher, bludger.Sequence)); }
public void Sequence(Bludger bludger) { if (sequencerRep.IsRepeated(bludger.Sequence, bludger.Publisher)) { return; } pool.AssyncInvoke(new WaitCallback(ProcessSequence), bludger); }
public bool FreezeSequencerIfNeeded(Bludger bludger) { throw new NotImplementedException(); }
public bool FreezeBludgerIfNeeded(Bludger bludger) { return false; }
public void Bludger(Bludger bludger) { subscriber.Bludger(bludger); }
public bool FreezeBludgerIfNeeded(Bludger bludger) { return(false); }
public void DoBludger(Bludger bludger) { this.router.DiffuseBludger(bludger); ICollection<NodePair<ISubscriber>> subscribersToSend = Data.SubscribersFor(bludger.Topic); foreach (var subscriberPair in subscribersToSend) { subscriberPair.Node.Bludger(bludger); } }