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