Merge pull request #4668 from adamscott/template-pool-to-scons_pool
[scons.git] / doc / design / engine.svg
blob2ed9bcc174ef369ea029544098ed18b8d8d8b4bc
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!-- Created with Inkscape (http://www.inkscape.org/) -->
4 <svg
5 xmlns:dc="http://purl.org/dc/elements/1.1/"
6 xmlns:cc="http://creativecommons.org/ns#"
7 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8 xmlns:svg="http://www.w3.org/2000/svg"
9 xmlns="http://www.w3.org/2000/svg"
10 version="1.1"
11 width="8.5in"
12 height="7.5999999in"
13 viewBox="1188 1638 10224 9174"
14 id="svg3034">
15 <metadata
16 id="metadata3230">
17 <rdf:RDF>
18 <cc:Work
19 rdf:about="">
20 <dc:format>image/svg+xml</dc:format>
21 <dc:type
22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
23 <dc:title></dc:title>
24 </cc:Work>
25 </rdf:RDF>
26 </metadata>
27 <defs
28 id="defs3228" />
30 id="g3036"
31 style="fill:none;stroke-width:0.025in">
32 <rect
33 width="1500"
34 height="600"
35 rx="0"
36 x="2100"
37 y="8700"
38 id="rect3038"
39 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
40 <rect
41 width="1950"
42 height="600"
43 rx="0"
44 x="7050"
45 y="6900"
46 id="rect3040"
47 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
48 <rect
49 width="1950"
50 height="600"
51 rx="0"
52 x="9450"
53 y="6900"
54 id="rect3042"
55 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
56 <rect
57 width="1200"
58 height="600"
59 rx="0"
60 x="1200"
61 y="4200"
62 id="rect3044"
63 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
64 <rect
65 width="1200"
66 height="600"
67 rx="0"
68 x="2400"
69 y="3300"
70 id="rect3046"
71 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
72 <rect
73 width="1800"
74 height="600"
75 rx="0"
76 x="8700"
77 y="1650"
78 id="rect3048"
79 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
80 <rect
81 width="1800"
82 height="600"
83 rx="0"
84 x="1500"
85 y="1650"
86 id="rect3050"
87 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
88 <rect
89 width="1500"
90 height="600"
91 rx="0"
92 x="7800"
93 y="8700"
94 id="rect3052"
95 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
96 <rect
97 width="900"
98 height="600"
99 rx="0"
100 x="1500"
101 y="10200"
102 id="rect3054"
103 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
104 <rect
105 width="900"
106 height="600"
107 rx="0"
108 x="3300"
109 y="10200"
110 id="rect3056"
111 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
112 <rect
113 width="1200"
114 height="600"
115 rx="0"
116 x="6000"
117 y="10200"
118 id="rect3058"
119 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
120 <rect
121 width="1500"
122 height="600"
123 rx="0"
124 x="7800"
125 y="10200"
126 id="rect3060"
127 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
128 <rect
129 width="1200"
130 height="600"
131 rx="0"
132 x="9900"
133 y="10200"
134 id="rect3062"
135 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
136 <polygon
137 points="6825,5175 6900,5100 6975,5175 6900,5250 6900,5250 "
138 id="polygon3064"
139 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
140 <polygon
141 points="6225,5175 6300,5100 6375,5175 6300,5250 6300,5250 "
142 id="polygon3066"
143 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
144 <polygon
145 points="5625,5175 5700,5100 5775,5175 5700,5250 5700,5250 "
146 id="polygon3068"
147 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
148 <rect
149 width="2400"
150 height="2400"
151 rx="0"
152 x="4800"
153 y="2700"
154 id="rect3070"
155 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
156 <polygon
157 points="5025,5250 5175,5250 5100,5100 5100,5100 "
158 id="polygon3072"
159 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
160 <polyline
161 points="6300,5250 6300,5700 8400,5700 8400,4200 7216,4200 "
162 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
163 id="polyline3074" />
164 <polyline
165 points="7322 4170 7202 4200 7322 4230 "
166 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
167 id="polyline3076" />
168 <polyline
169 points="5700,5250 5700,6000 9000,6000 9000,3600 7216,3600 "
170 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
171 id="polyline3078" />
172 <polyline
173 points="7322 3570 7202 3600 7322 3630 "
174 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
175 id="polyline3080" />
176 <polyline
177 points="5100,5250 5100,8100 "
178 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
179 id="polyline3082" />
180 <polygon
181 points="4650,3600 4725,3525 4800,3600 4725,3675 4725,3675 "
182 id="polygon3084"
183 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
184 <polygon
185 points="4650,4500 4725,4425 4800,4500 4725,4575 4725,4575 "
186 id="polygon3086"
187 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
188 <polyline
189 points="4650,3600 3616,3600 "
190 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
191 id="polyline3088" />
192 <polyline
193 points="3722 3570 3602 3600 3722 3630 "
194 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
195 id="polyline3090" />
196 <polyline
197 points="4650,4500 2416,4500 "
198 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
199 id="polyline3092" />
200 <polyline
201 points="2522 4470 2402 4500 2522 4530 "
202 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
203 id="polyline3094" />
204 <polyline
205 points="1800,2400 1800,4183 "
206 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
207 id="polyline3096" />
208 <polyline
209 points="1770 4078 1800 4198 1830 4078 "
210 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
211 id="polyline3098" />
212 <polyline
213 points="3000,2400 3000,3283 "
214 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
215 id="polyline3100" />
216 <polyline
217 points="2970 3178 3000 3298 3030 3178 "
218 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
219 id="polyline3102" />
220 <polyline
221 points="5850,1950 5850,2700 "
222 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:40, 40"
223 id="polyline3104" />
224 <polygon
225 points="2925,2325 3000,2250 3075,2325 3000,2400 3000,2400 "
226 id="polygon3106"
227 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
228 <polygon
229 points="1725,2325 1800,2250 1875,2325 1800,2400 1800,2400 "
230 id="polygon3108"
231 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
232 <polyline
233 points="3300,1950 8700,1950 "
234 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
235 id="polyline3110" />
236 <polyline
237 points="9600,2400 9600,6600 "
238 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
239 id="polyline3112" />
240 <polyline
241 points="7950,6900 7950,6600 10350,6600 10350,6900 "
242 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
243 id="polyline3114" />
244 <polygon
245 points="9525,2400 9675,2400 9600,2250 9600,2250 "
246 id="polygon3116"
247 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
248 <polyline
249 points="4800,3000 7200,3000 "
250 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
251 id="polyline3118" />
252 <polyline
253 points="4800,3300 7200,3300 "
254 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
255 id="polyline3120" />
256 <polygon
257 points="2775,9450 2925,9450 2850,9300 2850,9300 "
258 id="polygon3122"
259 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
260 <polyline
261 points="2100,10200 2100,9900 3750,9900 3750,10200 "
262 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
263 id="polyline3124" />
264 <polyline
265 points="6600,10200 6600,9900 10500,9900 10500,10200 10500,10125 "
266 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
267 id="polyline3126" />
268 <polyline
269 points="2850,9450 2850,9900 "
270 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
271 id="polyline3128" />
272 <polyline
273 points="8475,9450 8475,10200 "
274 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
275 id="polyline3130" />
276 <polygon
277 points="8400,9450 8550,9450 8475,9300 8475,9300 "
278 id="polygon3132"
279 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter" />
280 <polyline
281 points="2775,6825 "
282 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
283 id="polyline3134" />
284 <polyline
285 points="1800,10200 1800,9000 2083,9000 "
286 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
287 id="polyline3136" />
288 <polyline
289 points="1978 9030 2098 9000 1978 8970 "
290 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
291 id="polyline3138" />
292 <polyline
293 points="9900,10500 9316,10500 "
294 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
295 id="polyline3140" />
296 <polyline
297 points="9422 10470 9302 10500 9422 10530 "
298 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
299 id="polyline3142" />
300 <polyline
301 points="7800,10500 7216,10500 "
302 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
303 id="polyline3144" />
304 <polyline
305 points="7322 10470 7202 10500 7322 10530 "
306 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
307 id="polyline3146" />
308 <polyline
309 points="2850,8700 2850,8100 8550,8100 8550,8700 "
310 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
311 id="polyline3148" />
312 <polyline
313 points="10350,7500 10350,9000 9316,9000 "
314 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:40, 40"
315 id="polyline3150" />
316 <polyline
317 points="9422 8970 9302 9000 9422 9030 "
318 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
319 id="polyline3152" />
320 <polyline
321 points="7050,7200 2400,7200 2400,8683 "
322 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:40, 40"
323 id="polyline3154" />
324 <polyline
325 points="2370 8578 2400 8698 2430 8578 "
326 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
327 id="polyline3156" />
328 <polyline
329 points="6900,5250 6900,5400 7800,5400 7800,4800 7216,4800 "
330 style="stroke:#000000;stroke-width:7;stroke-linecap:butt;stroke-linejoin:miter"
331 id="polyline3158" />
332 <polyline
333 points="7322 4770 7202 4800 7322 4830 "
334 style="stroke:#000000;stroke-width:7;stroke-miterlimit:8"
335 id="polyline3160" />
336 <text
337 x="2400"
338 y="9075"
339 id="text3162"
340 xml:space="preserve"
341 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Node.FS</text>
342 <text
343 x="7200"
344 y="7275"
345 id="text3164"
346 xml:space="preserve"
347 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Intercessor.FS</text>
348 <text
349 x="9600"
350 y="7275"
351 id="text3166"
352 xml:space="preserve"
353 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Intercessor.DB</text>
354 <text
355 x="1350"
356 y="4575"
357 id="text3168"
358 xml:space="preserve"
359 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Scanner</text>
360 <text
361 x="2625"
362 y="3675"
363 id="text3170"
364 xml:space="preserve"
365 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Builder</text>
366 <text
367 x="9000"
368 y="2025"
369 id="text3172"
370 xml:space="preserve"
371 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Intercessor</text>
372 <text
373 x="1725"
374 y="2025"
375 id="text3174"
376 xml:space="preserve"
377 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Environment</text>
378 <text
379 x="8100"
380 y="9075"
381 id="text3176"
382 xml:space="preserve"
383 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Node.DB</text>
384 <text
385 x="1800"
386 y="10575"
387 id="text3178"
388 xml:space="preserve"
389 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Dir</text>
390 <text
391 x="3600"
392 y="10575"
393 id="text3180"
394 xml:space="preserve"
395 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">File</text>
396 <text
397 x="6300"
398 y="10575"
399 id="text3182"
400 xml:space="preserve"
401 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Table</text>
402 <text
403 x="8100"
404 y="10575"
405 id="text3184"
406 xml:space="preserve"
407 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Record</text>
408 <text
409 x="10200"
410 y="10575"
411 id="text3186"
412 xml:space="preserve"
413 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Field</text>
414 <text
415 x="4950"
416 y="2925"
417 id="text3188"
418 xml:space="preserve"
419 style="font-size:168px;font-style:normal;font-weight:bold;text-anchor:start;fill:#000000;font-family:Helvetica">Node</text>
420 <text
421 x="7350"
422 y="3525"
423 id="text3190"
424 xml:space="preserve"
425 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">dependency</text>
426 <text
427 x="7425"
428 y="3825"
429 id="text3192"
430 xml:space="preserve"
431 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">*</text>
432 <text
433 x="7350"
434 y="4125"
435 id="text3194"
436 xml:space="preserve"
437 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">srcnode</text>
438 <text
439 x="7425"
440 y="4425"
441 id="text3196"
442 xml:space="preserve"
443 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">1</text>
444 <text
445 x="7350"
446 y="4725"
447 id="text3198"
448 xml:space="preserve"
449 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">repnode</text>
450 <text
451 x="7425"
452 y="5025"
453 id="text3200"
454 xml:space="preserve"
455 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">1</text>
456 <text
457 x="2550"
458 y="4725"
459 id="text3202"
460 xml:space="preserve"
461 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">0..1</text>
462 <text
463 x="3750"
464 y="3825"
465 id="text3204"
466 xml:space="preserve"
467 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">0..1</text>
468 <text
469 x="1875"
470 y="4050"
471 id="text3206"
472 xml:space="preserve"
473 style="font-size:144px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Times">*</text>
474 <text
475 x="3075"
476 y="3150"
477 id="text3208"
478 xml:space="preserve"
479 style="font-size:144px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Times">*</text>
480 <text
481 x="5100"
482 y="3750"
483 id="text3210"
484 xml:space="preserve"
485 style="font-size:168px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">build()</text>
486 <text
487 x="5100"
488 y="4260"
489 id="text3212"
490 xml:space="preserve"
491 style="font-size:168px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">scan()</text>
492 <text
493 x="9750"
494 y="10725"
495 id="text3214"
496 xml:space="preserve"
497 style="font-size:144px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Times">1</text>
498 <text
499 x="1650"
500 y="10125"
501 id="text3216"
502 xml:space="preserve"
503 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">1</text>
504 <text
505 x="1875"
506 y="9225"
507 id="text3218"
508 xml:space="preserve"
509 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">*</text>
510 <text
511 x="7650"
512 y="10725"
513 id="text3220"
514 xml:space="preserve"
515 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">1</text>
516 <text
517 x="7275"
518 y="10725"
519 id="text3222"
520 xml:space="preserve"
521 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">*</text>
522 <text
523 x="9375"
524 y="10725"
525 id="text3224"
526 xml:space="preserve"
527 style="font-size:120px;font-style:normal;font-weight:normal;text-anchor:start;fill:#000000;font-family:Helvetica">*</text>
528 </g>
529 </svg>