Free Electron
SystemI.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __moa_SystemI_h__
8 #define __moa_SystemI_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**
16  * System Interface for MOA.
17  */
18 class FE_DL_EXPORT SystemI :
19  virtual public Component,
20  public CastableAs<SystemI>
21 {
22  public:
23  /**
24  * Perform processing due to having been signaled.
25  *
26  * @param a_note_id The id of the tick type that we are reacting to.
27  *
28  * This is a convenience function, wrapping "note" connecting.
29  *
30  * orchestrator->connect(this, "a signal name"); // without functional
31  * connects to this perform(), such as:
32  * orchestrator->connect(this, &SystemI::perform, "a signal name");
33  *
34  */
35  virtual void perform(const t_note_id &a_note_id) {}
36 
37  /**
38  * Callback for the System to register itself to the orchestrator.
39  *
40  * This allows you to specify which ticks you'd like to react to.
41  *
42  * @param a_spOrchestrator Orchestrator for you to connect to.
43  */
44  virtual void connectOrchestrator(
45  sp<OrchestratorI> a_spOrchestrator) = 0;
46 
47 };
48 
49 } /* namespace ext*/
50 } /* namespace fe*/
51 
52 #endif /* __moa_SystemI_h__ */
kernel
Definition: namespace.dox:3
virtual void perform(const t_note_id &a_note_id)
Perform processing due to having been signaled.
Definition: SystemI.h:35
Base for all interfacable components.
Definition: Component.h:20
Intrusive Smart Pointer.
Definition: src/core/ptr.h:53
System Interface for MOA.
Definition: SystemI.h:18
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192