1  /**
 2   * main.c
 3   *
 4   * Testing methods for GServiceBrowser
 5   */
 6
 7  #include <gtk/gtk.h>
 8
 9  #include "dnssd-service-browser.h"
10
11  static void
12  service_added_cb (GServiceBrowser *sb, GServiceEvent *event, gpointer user_data)
13  {
14          g_print ("Got signal service-added\n");
15          g_print ("  name: %s\n  type: %s\n  domain: %s\n",
16                          event->name, event->type, event->domain);
17  }
18
19  static void
20  service_removed_cb (GServiceBrowser *sb, GServiceEvent *event, gpointer user_data)
21  {
22          g_print ("Got signal service-removed\n");
23  }
24
25  static gboolean
26  ten_second_timeout (gpointer user_data)
27  {
28          GServiceBrowser *sb;
29
30          sb = G_SERVICE_BROWSER (user_data);
31
32          g_print ("10 seconds!!\n");
33
34          g_service_browser_remove_type (sb, "_workstation._tcp");
35          return FALSE;
36  }
37
38  int
39  main (int argc, char **argv)
40  {
41          GServiceBrowser *sb1;
42          GServiceBrowser *sb2;
43
44          g_type_init ();
45
46          sb1 = g_service_browser_new ();
47          g_service_browser_add_type (sb1, "_http._tcp");
48          g_service_browser_add_type (sb1, "_workstation._tcp");
49          // sb2 = g_object_new (G_TYPE_SERVICE_BROWSER, NULL);
50
51          g_signal_connect (G_OBJECT (sb1), "service-added",
52                          G_CALLBACK (service_added_cb), NULL);
53          g_signal_connect (G_OBJECT (sb1), "service-removed",
54                          G_CALLBACK (service_removed_cb), NULL);
55
56          g_timeout_add (10000, ten_second_timeout, sb1);
57
58          gtk_main ();
59
60          return 0;
61  }