Ringer::RingerIOVarDepObj< CRTP > Node1 Ringer::RingerIOVarDepObj < CRTP > + RingerIOVarDepObj() + name() + write() + read() Node2 Ringer::VariableDependency - m_etaDependency - m_etDependency - m_etaMin - m_etaMax - m_etMin - m_etMax + VariableDependency() + VariableDependency() + VariableDependency() + VariableDependency() + isWithinRange() + isWithinEtaRange() + etaDep() + etaMin() + etaMax() + etMin() and 9 more... + read() Node2->Node1