42 std::cout <<
"=== Event Bus Example ===\n\n";
47 std::cout <<
"1. Subscribing to events...\n";
50 { std::cout <<
" [Auth] User '" << e.username <<
"' logged in from " << e.ip_address <<
"\n"; });
54 { std::cout <<
" [Audit] Login recorded for '" << e.username <<
"'\n"; });
59 { std::cout <<
" [Orders] Order #" << e.order_id <<
" placed, total: $" << e.total <<
"\n"; });
62 bus.set_error_callback([](
const std::string& error,
size_t, uint64_t)
63 { std::cerr <<
" [Error] Event bus error: " << error <<
"\n"; });
66 std::cout <<
"\n2. Publishing events...\n";
71 std::cout <<
"\n3. Unsubscribing audit logger...\n";
72 bus.unsubscribe(audit_sub);
75 std::cout <<
"\n4. Publishing after unsubscribe...\n";
79 std::cout <<
"\n5. Priority-ordered publishing...\n";
82 { std::cout <<
" [Alert] severity=" << e.severity <<
": " << e.message <<
"\n"; });
84 bus.publish(
system_alert{
"CPU usage high", 2}, event_priority::high);
85 bus.publish(
system_alert{
"Disk space low", 1}, event_priority::normal);
88 bus.unsubscribe(login_sub);
89 bus.unsubscribe(order_sub);
90 bus.unsubscribe(alert_sub);
92 std::cout <<
"\nDone.\n";