25 #ifndef INCLUDED_RemoteHandlerInternals_h_GUID_20139712_D173_4D91_A995_2552DF68354A
26 #define INCLUDED_RemoteHandlerInternals_h_GUID_20139712_D173_4D91_A995_2552DF68354A
48 : m_interfaces(ifaces) {}
54 template <
typename ReportType>
56 ReportType
const &report) {
59 "Should only call a state setter if we're keeping state for "
73 for (
auto &iface : m_interfaces) {
82 common::InterfaceList &m_interfaces;
86 #endif // INCLUDED_RemoteHandlerInternals_h_GUID_20139712_D173_4D91_A995_2552DF68354A
shared_ptr< ClientInterface > ClientInterfacePtr
Pointer for holding ClientInterface objects safely.
void forEachInterface(F &&f)
Do something with every client interface object, if the above options don't suit your needs...
Type predicate: Whether callbacks of a report type should store state for that type.
void triggerCallbacks(const OSVR_TimeValue ×tamp, ReportType const &report)
Trigger all callbacks for the given known report type.
void setStateAndTriggerCallbacks(const OSVR_TimeValue ×tamp, ReportType const &report)
Set state and call callbacks for a report type.
RemoteHandlerInternals(common::InterfaceList &ifaces)
Construct with a reference to an interface list.
Standardized, portable parallel to struct timeval for representing both absolute times and time inter...
Class holding shared implementation between the various handlers. Primarily used to avoid the need fo...
void setState(const OSVR_TimeValue ×tamp, ReportType const &report)
Set saved state for a report type.