The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Protocol::DBus::Client::Mojo - D-Bus with Mojolicious

SYNOPSIS

    use experimental 'signatures';

    my $dbus = Protocol::DBus::Client::Mojo::system();

    $dbus->initialize_p()->then(
        sub ($msgr) {
            my $a = $msgr->send_call_p( .. )->then( sub ($resp) {
                # ..
            } );

            my $b = $msgr->send_call_p( .. )->then( sub ($resp) {
                # ..
            } );

            return Mojo::Promise->all( $a, $b );
        },
    )->wait();

DESCRIPTION

This module provides an interface between Mojo::IOLoop and Protocol::DBus::Client. It subclasses Protocol::DBus::Client::EventBase.

Mojolicious-based applications can use this module to interface easily with D-Bus.

INTERFACE NOTES

This module exposes mostly the same interface as Protocol::DBus::Client::AnyEvent, except for a bit of “Mojo-specific” behavior:

  • Returned promises, both from initialize() and the messenger object’s send_call(), are instances of Mojo::Promise rather than Promise::ES6.

  • initialize_p() and send_call_p() exist as aliases for initialize() and send_call(), respectively.

INTERFACE

This module’s interface is identical to that of Protocol::DBus::Client::AnyEvent. See that module for more details.