![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
#include "stage/ctrl/bus-term.hpp"
connection point at the UI-Bus.
The UI-Bus is a star shaped network of terminal points, where each tangible UI element holds a BusTerm serving access point. The BusTerm interface exposes the basic "verbs" available for communication within the UI
Definition at line 96 of file bus-term.hpp.
Public Types | |
| using | ID = EntryID const & |
Public Member Functions | |
| virtual | ~BusTerm () |
| this is an interface | |
| virtual void | act (GenNode const &command) |
| prepare or trigger invocation of a command. | |
| virtual void | note (ID subject, GenNode const &mark) |
| capture and record a "state mark" for later replay for restoring UI state. | |
| virtual bool | mark (ID subject, GenNode const &mark) |
| route a state update or notification to the given subject. | |
| virtual size_t | markAll (GenNode const &mark) |
| broadcast a notification message to all currently connected bus terminals. | |
| virtual bool | change (ID subject, MutationMessage &&diff) |
| alter and reshape the designated subject by applying the given diff message. | |
| virtual | operator string () const |
| void | note (GenNode const &mark) |
| record state mark from this subject | |
| ID | getID () const |
| BusTerm | attach (ID, Tangible &newNode) |
| Builder function: establish and wire a new BusTerm. | |
| BusTerm (BusTerm &&)=default | |
| may be moved, but not copied, due to the embedded identity | |
Protected Types | |
| using | EntryID = lib::idi::BareEntryID |
| using | Tangible = stage::model::Tangible |
Protected Member Functions | |
| BusTerm (ID identity, BusTerm &attached_to) | |
| virtual BusTerm & | routeAdd (ID, Tangible &) |
| virtual void | routeDetach (ID) noexcept |
| bool | isShortCircuit (ID) const noexcept |
Protected Attributes | |
| EntryID | endpointID_ |
| BusTerm & | theBus_ |
Additional Inherited Members | |
Private Member Functions inherited from MoveOnly | |
| ~MoveOnly ()=default | |
| MoveOnly ()=default | |
| MoveOnly (MoveOnly &&)=default | |
| MoveOnly (MoveOnly const &)=delete | |
| MoveOnly & | operator= (MoveOnly &&)=delete |
| MoveOnly & | operator= (MoveOnly const &)=delete |
|
virtual |
this is an interface
Definition at line 66 of file ui-bus.cpp.
References BusTerm::endpointID_, BusTerm::routeDetach(), and BusTerm::theBus_.
Referenced by Nexus::zombificate().
Here is the call graph for this function:
Here is the caller graph for this function:| identity | used for routing towards this BusTerm |
| attached_to | the "upstream" connection to the Bus |
Definition at line 140 of file bus-term.hpp.
|
protected |
Definition at line 100 of file bus-term.hpp.
|
protected |
Definition at line 101 of file bus-term.hpp.
Definition at line 107 of file bus-term.hpp.
|
virtual |
prepare or trigger invocation of a command.
| command | a GenNode either holding command parameters |
Reimplemented in TestNexus, ZombieNexus, and CoreService.
Definition at line 113 of file ui-bus.cpp.
References BusTerm::act(), and BusTerm::theBus_.
Referenced by TestControl::Page1::Page1(), TestControl::Page2::Page2(), BusTerm::act(), Tangible::invoke(), and Tangible::invoke().
Here is the call graph for this function:
Here is the caller graph for this function:capture and record a "state mark" for later replay for restoring UI state.
| subject | the endpoint-ID of the emitting element |
| mark | the actual state update or notification message to be remembered |
Reimplemented in TestNexus, ZombieNexus, and CoreService.
Definition at line 132 of file ui-bus.cpp.
References BusTerm::mark(), BusTerm::note(), and BusTerm::theBus_.
Referenced by Tangible::clearErr(), Tangible::clearMsg(), Tangible::doMark(), Tangible::markErr(), Tangible::markMsg(), BusTerm::note(), BusTerm::note(), Tangible::reset(), Tangible::slotCollapse(), and Tangible::slotExpand().
Here is the call graph for this function:
Here is the caller graph for this function:route a state update or notification to the given subject.
| subject | the endpoint-ID of the element to address |
| mark | the actual state update or notification message to be delivered |
true if the target was known and the mark operation dispatched. Reimplemented in Nexus, TestNexus, and ZombieNexus.
Definition at line 151 of file ui-bus.cpp.
References BusTerm::mark(), and BusTerm::theBus_.
Referenced by BusTerm_test::attachNewBusTerm(), NotificationService::dispatchMsg(), BusTerm::mark(), BusTerm::markAll(), BusTerm::note(), StateRecorder::replayAllState(), StateRecorder::replayPropertiesOf(), and StateRecorder::replayState().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
broadcast a notification message to all currently connected bus terminals.
| mark | the actual state update or notification message to be delivered |
Reimplemented in Nexus, TestNexus, and ZombieNexus.
Definition at line 166 of file ui-bus.cpp.
References BusTerm::mark(), BusTerm::markAll(), and BusTerm::theBus_.
Referenced by BusTerm::markAll().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
alter and reshape the designated subject by applying the given diff message.
| diff | encapsulated representation of a concrete diff sequence for the target. |
true if the target was known and the diff was applied without accident, false if no diff was applied because the desired target is unconnected. | lumiera::error::State | when diff application fails due to the target's shape or state being different than implicitly assumed by the given diff. |
Reimplemented in Nexus, TestNexus, and ZombieNexus.
Definition at line 185 of file ui-bus.cpp.
References BusTerm::change(), and BusTerm::theBus_.
Referenced by BusTerm::change(), and NotificationService::mutate().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Reimplemented in Nexus, TestNexus, and ZombieNexus.
Definition at line 215 of file ui-bus.cpp.
|
inline |
record state mark from this subject
Definition at line 156 of file bus-term.hpp.
References BusTerm::endpointID_, BusTerm::note(), and BusTerm::theBus_.
Here is the call graph for this function:
|
inline |
Definition at line 122 of file bus-term.hpp.
References BusTerm::endpointID_.
Referenced by Tangible::getID(), MockElm::getID(), Tangible::operator LuidH(), and Nexus::zombificate().
Here is the caller graph for this function:Builder function: establish and wire a new BusTerm.
| newNode | the UI-Element corresponding to and using the new BusTerm |
mark messages addressed to the new node's ID. It is expected that the Tangible in turn will use the returned BusTerm for any up-link communication. Thus, on destruction, the new BusTerm will detach this UI-Bus connection altogether. Definition at line 86 of file ui-bus.cpp.
References BusTerm::routeAdd(), and BusTerm::theBus_.
Here is the call graph for this function:establish new down-link connection form UI-Bus
| node | reference to the [Tangible] to be connected. |
Reimplemented in Nexus, TestNexus, and ZombieNexus.
Definition at line 197 of file ui-bus.cpp.
References BusTerm::routeAdd(), and BusTerm::theBus_.
Referenced by BusTerm::attach(), and BusTerm::routeAdd().
Here is the call graph for this function:
Here is the caller graph for this function:
|
protectedvirtualnoexcept |
disable down-link connection
Reimplemented in Nexus, TestNexus, and ZombieNexus.
Definition at line 208 of file ui-bus.cpp.
References BusTerm::routeDetach().
Referenced by BusTerm::~BusTerm(), and BusTerm::routeDetach().
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlineprotectednoexcept |
circuit breaker, relevant for Nexus shutdown
Definition at line 163 of file bus-term.hpp.
|
protected |
Definition at line 103 of file bus-term.hpp.
Referenced by BusTerm::~BusTerm(), BusTerm::getID(), and BusTerm::note().
|
protected |
Definition at line 104 of file bus-term.hpp.
Referenced by BusTerm::~BusTerm(), BusTerm::act(), BusTerm::attach(), BusTerm::change(), BusTerm::mark(), BusTerm::markAll(), BusTerm::note(), BusTerm::note(), and BusTerm::routeAdd().
Inheritance diagram for BusTerm:
Collaboration diagram for BusTerm: