Ringer::IRingerProcedureWrapper< Discrimination::IDiscriminator > Node1 Ringer::IRingerProcedure Wrapper< Discrimination ::IDiscriminator > + wrapName + name() + hasPP() + execute() + setRawConfCol() + getRawConfCol() + getSegType() + getExtraDescriptionPatterns() + execute() + writeCol() + read() # IRingerProcedureWrapper() * execute() * setRawConfCol() * getRawConfCol() * getSegType() * getExtraDescriptionPatterns() * execute() Node4 Ringer::RingerProcedureWrapper < procedure_t, etaDependency, etDependency, segType, false, true, false > - m_ppWrapperCol - m_discrCol - m_extraDescriptionNorms - m_extraDescriptionPatterns - m_discr - m_rsRawConfCol - m_nRings + RingerProcedureWrapper() + RingerProcedureWrapper() + execute() + execute() - checkPPWrapperCol() - checkExtraPatNorm() - checkDiscrCol() * DiscrDepProcCollection * ExtraPatternsNormCollection * m_ppWrapperCol * m_discrCol * m_extraDescriptionNorms * m_extraDescriptionPatterns * m_discr * m_rsRawConfCol * m_nRings * RingerProcedureWrapper() * RingerProcedureWrapper() * execute() * execute() * setRawConfCol() * getRawConfCol() * getExtraDescriptionPatterns() * setExtraDescriptionPatterns() * getExtraDescriptionNorms() * setExtraDescriptionNorms() * getSegType() * empty() * hasPP() * setMsgStream() and 8 more... * checkPPWrapperCol() * checkExtraPatNorm() * checkDiscrCol() Node1->Node4 Node2 IRedirectMsgStream Node2->Node1 Node3 Ringer::IRingerProcedure WrapperBase + empty() + write() + name() + etaDep() + etDep() + releaseMemory() + fullName() + print() + ~IRingerProcedureWrapperBase() Node3->Node1