MonitorGlobal Node1 MonitorGlobal + MonitorGlobal() + MonitorGlobal() + ~MonitorGlobal() + operator=() + MonitorGlobal() + newEvent() + newCounter() Node2 MonitorBase # m_counters # m_msgStream - m_name - m_parent + MonitorBase() + MonitorBase() + ~MonitorBase() + operator=() + MonitorBase() + getName() + getParent() + bookGetPointer() + counterExists() + getCounter() + newEvent() + endEvent() + msg() + msg() + msgLvl() # newCounter() Node2->Node1