Ringer::Discrimination::IDiscriminatorVarDep Node1 Ringer::Discrimination ::IDiscriminatorVarDep + 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 Node3 Ringer::Discrimination ::IDiscriminator + execute() Node3->Node1 Node4 Ringer::IRingerProcedure + write() + ~IRingerProcedure() Node4->Node3 Node5 IRedirectMsgStream Node5->Node4