home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / doc / libnet-dbus-perl / examples / example-signal-receiver.pl < prev    next >
Encoding:
Perl Script  |  2006-02-19  |  800 b   |  35 lines

  1. #!/usr/bin/perl -w
  2.  
  3. use Net::DBus;
  4. use Net::DBus::Reactor;
  5.  
  6. use Carp qw(confess cluck);
  7.  
  8. #$SIG{__WARN__} = sub { cluck $_[0] };
  9. #$SIG{__DIE__} = sub { confess $_[0] };
  10.  
  11. my $bus = Net::DBus->session();
  12.  
  13. my $service = $bus->get_service("org.designfu.TestService");
  14. my $object  = $service->get_object("/org/designfu/TestService/object",
  15.                    "org.designfu.TestService");
  16.  
  17. sub hello_signal_handler {
  18.     my $greeting = shift;
  19.     print "Received hello signal with greeting '$greeting'\n";
  20. }
  21.  
  22. $object->connect_to_signal("HelloSignal", \&hello_signal_handler);
  23.  
  24. my $reactor = Net::DBus::Reactor->main();
  25.  
  26. my $ticks = 0;
  27. $reactor->add_timeout(1000, Net::DBus::Callback->new(method => sub {
  28.     $object->emitHelloSignal();
  29.     if ($ticks++ == 10) {
  30.       $reactor->shutdown();
  31.     }
  32. }));
  33.  
  34. $reactor->run();
  35.