observable.h File Reference

Classes

struct   Undefined
class   CallMe< T >
class   CallMe< void >
class   CallMe< Result< T > >
class   CallMe< Result< void > >
class   UnpackConstData< T >
class   UnpackConstData< RESULT(ARGS...)>
class   PackConstData< ARGS >
struct   GetResultType< T >
struct   GetResultType< Data >
struct   GetResultType< void >
struct   GetResultType< Result< T > >
struct   GetResultType< Result< Data > >
struct   GetResultType< Result< void > >
class   FunctionBaseInterface
class   CombinerInterface
class   ObservableBaseInterface
class   ObservableNotifyRef< T >
class   ObservableNotifyRef< Delegate< RESULT(void)> >
class   ObservableNotifyRef< Delegate< RESULT(ARGS...)> >
class   ObservableRef< DELEGATE >
class   ObservableStaticInterface
class   ObservableImplRef< ObservableClass, DELEGATE >

Namespaces

  maxon
  maxon::details

Macros

#define  PRIVATE_MAXON_OBSERVABLE_IMPL (NAME, Interface)
#define  PRIVATE_MAXON_OBSERVABLE_IMPL_
#define  MAXON_OBSERVABLE_IMPL (NAME, ...)
#define  OBSERVABLE_IMPL_NONVIRTUAL (NAME)
#define  MAXON_OBSERVABLE (RETTYPE, NAME, ...)
#define  MAXON_OBSERVABLE_STATIC (RETTYPE, NAME, ...)

Typedefs

using  ObservableForwardFunction = Result< Data >(*)(const DelegateBase &observerFunction, const Block< const ConstDataPtr > &data)

函数

template<typename... ARGS>
static auto  GetUnpackConstData (const Delegate< ARGS... > &) -> UnpackConstData< ARGS... >
  MAXON_DECLARATION (ComponentDescriptor, ObservableCombinerRunAllComponent, "net.maxon.component.observablecombinerrunall")
  MAXON_DECLARATION (ComponentDescriptor, ObservableCombinerRunAllBoolOrComponent, "net.maxon.component.observablecombinerrunallboolor")
  MAXON_DECLARATION (ComponentDescriptor, ObservableCombinerRunAllBoolUntilFalse, "net.maxon.component.observablecombinerrunallbooluntilfalse")
  MAXON_DECLARATION (ComponentDescriptor, ObservableCombinerRunAllBoolUntilTrue, "net.maxon.component.observablecombinerrunallbooluntiltrue")
  MAXON_DECLARATION (ComponentDescriptor, ObservableCombinerRunAllEnumFlagsOrComponent, "net.maxon.component.observablecombinerrunallenumflagsor")
  MAXON_DECLARATION (ComponentDescriptor, ObservableCombinerRunAllEnumFlags64OrComponent, "net.maxon.component.observablecombinerrunallenumflags64or")
  MAXON_DECLARATION (ComponentDescriptor, ObservableCombinerRunAllAggregateErrorsComponent, "net.maxon.component.observablecombinerrunallaggregateerrors")
  MAXON_DECLARATION (Class< FunctionBaseRef >, FunctionBaseClass, "net.maxon.class.functionbase")
  MAXON_DECLARATION (Class< ObservableBaseRef >, ObservableClass, "net.maxon.class.observable")

变量

static constexpr Int   ADDOBSERVER_DEFAULTPRIORITY

Macro Definition Documentation

◆  PRIVATE_MAXON_OBSERVABLE_IMPL

#define PRIVATE_MAXON_OBSERVABLE_IMPL (   NAME,
  Interface 
)

◆  PRIVATE_MAXON_OBSERVABLE_IMPL_

#define PRIVATE_MAXON_OBSERVABLE_IMPL_

◆  MAXON_OBSERVABLE_IMPL

#define MAXON_OBSERVABLE_IMPL (   NAME,
  ...  
)

Macro for observable implementation. Use MAXON_OBSERVABLE_IMPL(observableName) within the implementation of interfaces which offer observables.

参数
[in] NAME Name of the observable in the interface class.
[in] ... Optional: The interface of NAME. You need to specify this when the component doesn't implement exactly the interface of NAME, but e.g. a derived interface or additional interfaces. Example usage: class NetworkZeroConfBonjourBrowserImpl : public 组件 <NetworkZeroConfBonjourBrowserImpl, NetworkZeroConfBrowserInterface> { MAXON_COMPONENT (); public : Result<void> InitComponent() { iferr (_ObservableDetected.Init( self , Id( "ObservableDetected" ))) return err; iferr (_ObservableResolved.Init(self, Id("ObservableResolved"))) return err; return true; } void FreeComponent() { _ObservableDetected.Free(); _ObservableResolved.Free(); } MAXON_OBSERVABLE_IMPL (ObservableDetected); MAXON_OBSERVABLE_IMPL (ObservableResolved); };

◆  OBSERVABLE_IMPL_NONVIRTUAL

#define OBSERVABLE_IMPL_NONVIRTUAL (   NAME )

Macro for observable implementation in non-virtual interfaces.

参数
[in] NAME Name of the observable in the interface class. Example usage: class TimerImpl : public TimerInterface { MAXON_IMPLEMENTATION (TimerImpl) public : TimerImpl() { _notificationObject = ObserverObjectClass().Create().GetPointer(); _ObservableTimerStarted.Init(_notificationObject, Id( "ObservableTimerStarted" )); } ~TimerImpl() { _ObservableTimerStarted.Free(); } void Start() { _ObservableTimerStarted.Notify(); } OBSERVABLE_IMPL_NONVIRTUAL (ObservableTimerStarted); private : ObserverObjectRef _notificationObject; };

◆  MAXON_OBSERVABLE

#define MAXON_OBSERVABLE (   RETTYPE,
  NAME,
  ...  
)

Defined Observables for the source processor.

◆  MAXON_OBSERVABLE_STATIC

#define MAXON_OBSERVABLE_STATIC (   RETTYPE,
  NAME,
  ...  
)
MAXON_COMPONENT
#define MAXON_COMPONENT(KIND,...)
定义: objectbase.h:2036
MAXON_IMPLEMENTATION
#define MAXON_IMPLEMENTATION(C)
定义: interfacebase.h:1294
OBSERVABLE_IMPL_NONVIRTUAL
#define OBSERVABLE_IMPL_NONVIRTUAL(NAME)
定义: observable.h:290
iferr
#define iferr(...)
定义: errorbase.h:380
MAXON_OBSERVABLE_IMPL
#define MAXON_OBSERVABLE_IMPL(NAME,...)
定义: observable.h:255
maxon::Component
ComponentWithBase< C, ComponentRoot, INTERFACES... > Component
定义: objectbase.h:2604