Open Search
    Observables Declaration

    Table of Contents

    About

    An interface can declare one or many observables. Such an observable can be used to receive a signal on certain events within that interface.

    Declaration

    Observables are declared within an interface:

    // This example shows an interface declaring an observable.
    class ObserveMeInterface : MAXON_INTERFACE_BASES(maxon::ObserverObjectInterface)
    {
    MAXON_INTERFACE(ObserveMeInterface, MAXON_REFERENCE_NORMAL, "net.maxonexample.interfaces.observeme");
    public:
    //----------------------------------------------------------------------------------------
    // Function makes "Ping".
    //----------------------------------------------------------------------------------------
    //----------------------------------------------------------------------------------------
    // Signal fired when Ping() is called.
    //----------------------------------------------------------------------------------------
    MAXON_OBSERVABLE(void, ObservablePing, (maxon::Int32 count), maxon::ObservableCombinerRunAllComponent);
    };
    Py_ssize_t count
    Definition: abstract.h:640
    [observers_declaration]
    Definition: observers.h:13
    MAXON_INTERFACE(ObserveMeInterface, MAXON_REFERENCE_NORMAL, "net.maxonexample.interfaces.observeme")
    MAXON_OBSERVABLE(void, ObservablePing,(maxon::Int32 count), maxon::ObservableCombinerRunAllComponent)
    MAXON_METHOD void Ping()
    int32_t Int32
    32 bit signed integer datatype.
    Definition: apibase.h:176
    #define MAXON_REFERENCE_NORMAL(FREEIMPL)
    Definition: interfacebase.h:1173
    #define MAXON_METHOD
    Definition: interfacebase.h:1001
    #define MAXON_INTERFACE_BASES(...)
    Definition: objectbase.h:1062

    The MAXON_OBSERVABLE() attribute defines the following options:

    • the return value of the callback function
    • the name of the observable
    • the argument list of the callback function

    Further Reading