62 lines
1.2 KiB
Go
62 lines
1.2 KiB
Go
package appdata
|
|
|
|
// Packet is the interface that all listener data structures implement so that this data can be "packetized"
|
|
// and processed in a stream, possibly asynchronously.
|
|
type Packet interface {
|
|
apply(*Listener) error
|
|
}
|
|
|
|
// SendPacket sends a packet to a listener invoking the appropriate callback for this packet if one is registered.
|
|
func (l Listener) SendPacket(p Packet) error {
|
|
return p.apply(&l)
|
|
}
|
|
|
|
func (m ModuleInitializationData) apply(l *Listener) error {
|
|
if l.InitializeModuleData == nil {
|
|
return nil
|
|
}
|
|
return l.InitializeModuleData(m)
|
|
}
|
|
|
|
func (b StartBlockData) apply(l *Listener) error {
|
|
if l.StartBlock == nil {
|
|
return nil
|
|
}
|
|
return l.StartBlock(b)
|
|
}
|
|
|
|
func (t TxData) apply(l *Listener) error {
|
|
if l.OnTx == nil {
|
|
return nil
|
|
}
|
|
return l.OnTx(t)
|
|
}
|
|
|
|
func (e EventData) apply(l *Listener) error {
|
|
if l.OnEvent == nil {
|
|
return nil
|
|
}
|
|
return l.OnEvent(e)
|
|
}
|
|
|
|
func (k KVPairData) apply(l *Listener) error {
|
|
if l.OnKVPair == nil {
|
|
return nil
|
|
}
|
|
return l.OnKVPair(k)
|
|
}
|
|
|
|
func (o ObjectUpdateData) apply(l *Listener) error {
|
|
if l.OnObjectUpdate == nil {
|
|
return nil
|
|
}
|
|
return l.OnObjectUpdate(o)
|
|
}
|
|
|
|
func (c CommitData) apply(l *Listener) error {
|
|
if l.Commit == nil {
|
|
return nil
|
|
}
|
|
return l.Commit(c)
|
|
}
|