#include "signal_Slot.h"
// Define the SignalSlot class object
SignalSlot signalSlot;
// Example slots
void slot1() {
Serial.println("Slot 1 executed!");
}
void slot2() {
Serial.println("Slot 2 executed!");
}
// Event callback to handle notifications
void eventHandler(const String& message) {
Serial.println("Event: " + message);
}
void setup() {
Serial.begin(9600);
signalSlot.setEventCallback(eventHandler);
// Connect slots to a signal
signalSlot.connect("mySignal", slot1);
signalSlot.connect("mySignal", slot2);
// Emit the signal
Serial.println("Emitting signal 'mySignal':");
signalSlot.emit("mySignal");
// Disconnect a specific slot
Serial.println("\nDisconnecting Slot 1:");
signalSlot.disconnectSlot("mySignal", slot1);
// Emit the signal again
Serial.println("\nEmitting signal 'mySignal' after disconnecting Slot 1:");
signalSlot.emit("mySignal");
// Disconnect the entire signal
Serial.println("\nDisconnecting all slots from 'mySignal':");
signalSlot.disconnect("mySignal");
// Emit the signal again (should produce an error)
Serial.println("\nEmitting signal 'mySignal' after disconnecting all slots:");
signalSlot.emit("mySignal");
}
void loop() {
// Nothing to do here
}