Lines Matching full:nodes

9 	// points the nodes that depend on this node
11 // all nodes that will be affected if this node is updated
95 private $nodes = NULL; variable in Maker
125 $this->nodes = array();
144 $this->nodes[$name] = new MakeNode($name, $file->is_target());
146 // link nodes reversly with dependency, i.e, if one node changed,
147 // which other nodes need to be upated
148 while ((list($name, $node) = each($this->nodes)) != false) {
151 if (!isset($this->nodes[$dep])) {
164 $this->nodes[$dep] = $dep_node;
166 else $dep_node = $this->nodes[$dep];
170 foreach ($this->nodes as $node) $node->find_affected($this->errors);
171 // find those which are affected by the error nodes
173 array_keys($this->nodes));
175 $this->nodes[$name]->mark_invalid($this->errors);
177 // drop the invalid nodes
178 $nodes = array();
179 // relink valid nodes
180 foreach ($this->nodes as $name => $node)
182 $nodes[$name] = new MakeNode($name, $node->is_target());
183 foreach ($nodes as $name => $node) {
185 foreach ($deps as $dep) $nodes[$dep]->link($node);
187 $this->nodes = $nodes;
196 $node = $this->nodes[$change];
204 $nodes = array();
205 foreach ($this->nodes as $name => $node)
207 $nodes[$name] = $node->ref;
209 if (!$nodes) return array();
210 $root->unref($nodes);
211 asort($nodes);
212 $this->make($nodes);
220 return array_keys($nodes);
224 private function make($nodes) { argument
227 while ($nodes) {
228 reset($nodes);
229 $name = key($nodes);
230 $ref = current($nodes);
231 $node = $this->nodes[$name];
233 unset($nodes[$name]);
237 unset($nodes[$name]);
245 if ($this->nodes[$dep]->ref !== -1 ) {
251 $node->unref($nodes);
257 $node->unref($nodes);
262 $this->wait($nodes);
266 $this->wait($nodes);
269 wiki_debug('nodes', $nodes);
270 // wiki_debug('nodes', $this->nodes);
277 private function wait(&$nodes) { argument
288 $node = $this->nodes[$name];
289 $node->unref($nodes);
325 foreach ($this->nodes as $node)