Mechanizm sygnałów i slotów

Mechanizm sygnałów i slotów to jedna z metod zorganizowania rozsyłania zdarzeń w aplikacjach komputerowych, głównie wykorzystywana w graficznych interfejsach użytkownika.

Jest to jedna ze specjalizacji metody wywołań zwrotnych. Wywołanie zwrotne jest realizowane w momencie nadejścia zdarzenia, a jego rezultatem jest wywołanie instrukcji, które zostały zarejestrowane jako procedury obsługi zdarzenia. Tę rejestrację nazywamy połączeniem sygnału ze slotem.

Sygnały w ogólności dzielą się na dwie kategorie: unicast i multicast. Sygnały typu unicast mogą mieć podłączony dokładnie jeden slot. Natomiast sygnały typu multicast mogą mieć podpiętą dowolną liczbę slotów, a emisja sygnału powoduje wywołanie wszystkich slotów po kolei, zazwyczaj w niezdefiniowanej kolejności.

Mechanizm ten jest zaimplementowany w większości popularnych bibliotek GUI, np. Boost, GTK+, gtkmm, Qt, wxWidgets. Biblioteki te jednak dostarczają jedynie sygnały typu multicast. Do implementacji tego mechanizmu można zaliczyć również delegaty występujące w języku C#.

Linki zewnętrzne

  • Dokumentacja biblioteki Boost.Signals. boost.org. [zarchiwizowane z tego adresu (2006-02-19)].
  • Dokumentacja sygnałów i slotów w Qt. doc.trolltech.com. [zarchiwizowane z tego adresu (2007-05-15)].
  • Strona domowa GTK+
  • Strona domowa libsigc++, implementacji mechanizmu sygnałów i slotów