## Async Activation

Bonobo Activation also has a set of asynchronous activation interfaces so that you do not need to block on activation calls. The CORBA level is pretty simple: the activation context has a set of `_async` calls: `OAF_ACtivationContext_activate_async` and `OAF_ACtivationContext_activate_from_id_async`. Both of those calls take an OAFActivationCallback CORBA object as parameter. This object, which is supposed to be implemented by client applications (it is actually implemented in liboaf) will receive CORBA calls when the activation is finished:

    module OAF {
            interface ActivationCallback {
                    oneway void report_activation_failed (in string reason);
                    oneway void report_activation_succeeded (in ActivationResult result);
            };
    };

Of course, libbonobo-activation provides comvenient wrappers for those CORBA functions. Those are named `bonobo_activation_activate_async` and `bonobo_activation_activate_from_id_async`.