4.2. Jak używać sygnałów

Zobacz opis .

4.2.1. Rejestracja sygnału

Żeby plugin mógł otrzymywać dany sygnał, musi o tym poinformować program. Może to zrobić za pośrednictwem dwóch funkcji:


void register_signal_receiver( *plugin_handler,void
			      (*sgr)(gpointer,gpointer));
void register_signal( *plugin_handler,gpointer name);

Pierwsza z nich, register_signal_receiver() jest wywoływana tylko raz i informuje ona program o tym, którą funkcję należy wywołać, gdy plugin otrzymuje sygnał.

Druga funkcja, register_signal() informuje o gotowości do odbioru danego sygnału. Nazwa sygnału jest podawana jako name.

4.2.2. Wysyłanie sygnału

Wysyłanie sygnału odbywa się za pośrednictwem poniższej funkcji:


void *signal_emit_full(gpointer src_name, gpointer name, gpointer data,
		       gpointer dest_name, void (*signal_free) (gpointer));

src_name określa nazwę pluginu źródłowego. name jest nazwą sygnału, natomiast dest_name nazwą pluginu docelowego. data jest wskaźnikiem do danych towarzyszących sygnałowi. signal_free jest wskaźnikiem do funkcji zwlaniającej pamięć po data po zakończeniu sygnału.