2using System.Collections.Generic;
3using System.Threading.Tasks;
15 private bool prevHasSniffers =
false;
31 this.CheckEventHandlers();
40 this.CheckEventHandlers();
48 bool Result = base.Remove(Sniffer);
49 this.CheckEventHandlers();
53 private void CheckEventHandlers()
57 if (this.prevHasSniffers != b)
61 Ledger.CollectionCleared += this.Ledger_CollectionCleared;
62 Ledger.EntryAdded += this.Ledger_EntryAdded;
63 Ledger.EntryUpdated += this.Ledger_EntryUpdated;
64 Ledger.EntryDeleted += this.Ledger_EntryDeleted;
68 Ledger.CollectionCleared -= this.Ledger_CollectionCleared;
69 Ledger.EntryAdded -= this.Ledger_EntryAdded;
70 Ledger.EntryUpdated -= this.Ledger_EntryUpdated;
71 Ledger.EntryDeleted -= this.Ledger_EntryDeleted;
74 this.prevHasSniffers = b;
90 private async
void Ledger_EntryUpdated(
object Sender,
ObjectEventArgs e)
98 await this.
ReceiveText(
"Entry of type " + e.
Object.GetType().FullName +
" updated.");
102 private async
void Ledger_EntryDeleted(
object Sender,
ObjectEventArgs e)
106 await this.
Error(await SniffableDatabase.GetJSON(e.
Object));
110 await this.
Error(
"Entry of type " + e.
Object.GetType().FullName +
" deleted.");
Class that can be used to sniff on ledger activity.
override void AddRange(IEnumerable< ISniffer > Sniffers)
ICommunicationLayer.AddRange
SniffableLedger()
Class that can be used to sniff on ledger activity.
override void Add(ISniffer Sniffer)
ICommunicationLayer.Add
override bool Remove(ISniffer Sniffer)
ICommunicationLayer.Remove
Simple base class for classes implementing communication protocols.
Task Error(string Error)
Called to inform the viewer of an error state.
ISniffer[] Sniffers
Registered sniffers.
Task Information(string Comment)
Called to inform the viewer of something.
Task TransmitText(string Text)
Called when text has been transmitted.
bool HasSniffers
If there are sniffers registered on the object.
Task ReceiveText(string Text)
Called when text has been received.
Event arguments for collection events.
string Collection
Collection
Event arguments for database object events.
Interface for sniffers. Sniffers can be added to ICommunicationLayer classes to eavesdrop on communic...