/** * Updates the state of the watcher, given reception of a new message. * * @param m * The message that was received. */ private void update(WatcherMessage m) { WatcherNode wn2; HashSet<WatcherNode> spawnedNodes; HashSet<WatcherNode> newNodes = new HashSet<WatcherNode>(); int size = 0, atoms = 0; foreach (WatcherNode wn in m_nodes) { wn2 = new WatcherNode(); wn2.setGamma(wn.getDelta()); spawnedNodes = wn2.spawn(m); foreach (WatcherNode wn3 in spawnedNodes) { newNodes.Add(wn3); } } m_nodes = newNodes; // Updates statistics about maximum number of nodes size = m_nodes.Count; if (size > m_maxNodes) { m_maxNodes = size; } // Updates statistics about total number of formulae size = 0; atoms = 0; foreach (WatcherNode wn in m_nodes) { size += wn.getSize(); atoms += wn.getAtoms(); } if (size > m_maxFormulae) { m_maxFormulae = size; } if (atoms > m_maxAtoms) { m_maxAtoms = atoms; } }