49#ifndef STAGE_CTRL_BUS_TERM_H
50#define STAGE_CTRL_BUS_TERM_H
63 namespace diff {
class MutationMessage; }
118 virtual operator string()
const;
165 return &theBus_ ==
this
166 or otherID == endpointID_;
type erased baseclass for building a combined hash and symbolic ID.
connection point at the UI-Bus.
virtual bool mark(ID subject, GenNode const &mark)
route a state update or notification to the given subject.
bool isShortCircuit(ID) const noexcept
BusTerm(ID identity, BusTerm &attached_to)
BusTerm(BusTerm &&)=default
may be moved, but not copied, due to the embedded identity
virtual void act(GenNode const &command)
prepare or trigger invocation of a command.
stage::model::Tangible Tangible
BusTerm attach(ID, Tangible &newNode)
Builder function: establish and wire a new BusTerm.
virtual BusTerm & routeAdd(ID, Tangible &)
virtual void routeDetach(ID) noexcept
virtual ~BusTerm()
this is an interface
virtual void note(ID subject, GenNode const &mark)
capture and record a "state mark" for later replay for restoring UI state.
virtual bool change(ID subject, MutationMessage &&diff)
alter and reshape the designated subject by applying the given diff message.
virtual size_t markAll(GenNode const &mark)
broadcast a notification message to all currently connected bus terminals.
Interface common to all UI elements of relevance for the Lumiera application.
Types marked with this mix-in may be moved but not copied.
Bare symbolic and hash ID used for accounting of asset like entries.
Lumiera error handling (C++ interface).
Generic building block for tree shaped (meta)data structures.
Implementation namespace for support and library code.
Lumiera GTK UI implementation root.
lib::idi::BareEntryID const & ID
Mix-Ins to allow or prohibit various degrees of copying and cloning.
generic data element node within a tree
Opaque message to effect a structural change on a target, which is likewise only known in an abstract...
typed symbolic and hash ID for asset-like position accounting.