Uploaded wiki images.
[jpf-core.git] / docs / graphics / mji-call.svg
diff --git a/docs/graphics/mji-call.svg b/docs/graphics/mji-call.svg
new file mode 100644 (file)
index 0000000..d5db418
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="13 12 553 462" width="553pt" height="462pt" xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata> Produced by OmniGraffle 6.1 <dc:date>2011-05-24 04:08:50 +0000</dc:date></metadata><defs><font-face font-family="Monaco" font-size="12" units-per-em="1000" underline-position="-37.597656" underline-thickness="75.683594" slope="0" x-height="560.54688" cap-height="780.27344" ascent="1e3" descent="-250" font-weight="500"><font-face-src><font-face-name name="Monaco"/></font-face-src></font-face><font-face font-family="Monaco" font-size="9" units-per-em="1000" underline-position="-37.597656" underline-thickness="75.683594" slope="0" x-height="560.54688" cap-height="780.27344" ascent="1e3" descent="-250" font-weight="500"><font-face-src><font-face-name name="Monaco"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-weight="500"><font-face-src><font-face-name name="Helvetica"/></font-face-src></font-face><font-face font-family="Helvetica" font-size="12" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="0" x-height="532.22656" cap-height="719.72656" ascent="770.01953" descent="-229.98047" font-weight="bold"><font-face-src><font-face-name name="Helvetica-Bold"/></font-face-src></font-face><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="Arrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="blue"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="none" stroke="currentColor" stroke-width="1"/></g></marker><marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black"><g><path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/></g></marker><font-face font-family="Helvetica" font-size="14" units-per-em="1000" underline-position="-75.683594" underline-thickness="49.316406" slope="-857.14286" x-height="522.94922" cap-height="717.28516" ascent="770.01953" descent="-229.98047" font-style="italic" font-weight="500"><font-face-src><font-face-name name="Helvetica-Oblique"/></font-face-src></font-face></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><title>Canvas 1</title><rect fill="white" width="588.0188" height="768.0188"/><g><title>Layer 1</title><text transform="translate(332 21.125)" fill="black"><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="12" textLength="57.609375">package </tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="red" x="57.609375" y="12" textLength="36.00586">x.y.z</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="93.615234" y="12" textLength="7.201172">;</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="28" textLength="43.20703">class </tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="red" x="43.20703" y="28" textLength="7.201172">C</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="50.408203" y="28" textLength="14.402344"> {</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="44" textLength="36.00586">  ...</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="60" textLength="14.402344">  </tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="red" x="14.402344" y="60" textLength="158.42578">native int foo (int p)</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="172.82812" y="60" textLength="7.201172">;</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="76" textLength="7.201172">}</tspan></text><text transform="translate(84 352.125)" fill="black"><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="12" textLength="43.20703">class </tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="red" x="43.20703" y="12" textLength="79.21289">JPF_x_y_z_C</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="122.41992" y="12" textLength="14.402344"> {</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="28" textLength="36.00586">  ...</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="44" textLength="14.402344">  </tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="red" x="14.402344" y="44" textLength="432.0703">public static int foo__I__I (MJIEnv env, int thisRef, int p)</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="446.47266" y="44" textLength="14.402344"> {</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="60" textLength="324.05273">    int d = env.getIntField(thisRef, &quot;data&quot;);</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="76" textLength="43.20703">    ..</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="92" textLength="21.603516">  }</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="108" textLength="7.201172">}</tspan></text><text transform="translate(157 51.125)" fill="black"><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="12" textLength="21.603516">...</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" x="0" y="28" textLength="122.41992">int a = c.foo(3);</tspan></text><text transform="translate(100 82.125)" fill="black"><tspan font-family="Monaco" font-size="9" font-weight="500" x="0" y="9" textLength="16.202637">...</tspan><tspan font-family="Monaco" font-size="9" font-weight="500" x="0" y="21" textLength="37.806152">aload_1</tspan><tspan font-family="Monaco" font-size="9" font-weight="500" x="0" y="33" textLength="37.806152">icont_3</tspan><tspan font-family="Monaco" font-size="9" font-weight="500" x="0" y="45" textLength="86.41406">invokevirtual ..</tspan></text><text transform="translate(39 215.125)" fill="gray"><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="12" textLength="230.4375">executeMethod (ThreadInfo ti..){</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="28" textLength="216.03516">  MJIEnv env = ti.getMJIEnv();</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="44" textLength="237.63867">  Object[] args = getArguments();</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="60" textLength="28.804688">  ..</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="76" textLength="201.63281">  mth.invoke(peerCls, args);</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="92" textLength="28.804688">  ..</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="108" textLength="7.201172">}</tspan></text><text transform="translate(328 198.125)" fill="gray"><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="12" textLength="108.01758">ClassInfo (..){</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="28" textLength="223.23633">  peerCls = loadNativePeer(..);</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="44" textLength="28.804688">  ..</tspan><tspan font-family="Monaco" font-size="12" font-weight="500" fill="gray" x="0" y="60" textLength="7.201172">}</tspan></text><rect x="314.25" y="168.5" width="103.75" height="14" fill="white"/><rect x="314.25" y="168.5" width="103.75" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(319.25 168.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="90.046875">executeMethod()</tspan></text><rect x="314.25" y="154.5" width="103.75" height="14" fill="white"/><rect x="314.25" y="154.5" width="103.75" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(319.25 154.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="41.34961">peerCls</tspan></text><rect x="314.25" y="140.5" width="103.75" height="14" fill="white"/><rect x="314.25" y="140.5" width="103.75" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(319.25 140.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="19.869141" y="11" textLength="54.01172">ClassInfo</tspan></text><rect x="186.25" y="187.5" width="103.75" height="14" fill="white"/><rect x="186.25" y="187.5" width="103.75" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(191.25 187.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="90.046875">executeMethod()</tspan></text><rect x="186.25" y="173.5" width="103.75" height="14" fill="white"/><rect x="186.25" y="173.5" width="103.75" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(191.25 173.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="46.02539">methods</tspan></text><rect x="186.25" y="159.5" width="103.75" height="14" fill="white"/><rect x="186.25" y="159.5" width="103.75" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(191.25 159.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="15.855469" y="11" textLength="62.039062">NativePeer</tspan></text><path d="M 323 53 C 308.0015 50.3336 291.9986 45.9999 278 45 C 264.0014 44.0001 250.6655 44.0003 239 47 C 230.64732 49.147832 223.66006 53.688744 216.57229 58.05222" marker-end="url(#Arrow_Marker)" stroke="blue" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 175 89 C 170.0005 93.3329 164.6662 96.83385 160 102 C 157.38073 104.899905 154.97109 108.325474 152.59469 111.83394" marker-end="url(#Arrow_Marker)" stroke="blue" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 139 136 C 127.0012 148.9987 119.3317 161.83465 103 175 C 86.6683 188.16535 53.49875 203.50115 41 215 C 28.50125 226.49885 25.50025 234.001 28 244 C 29.9417 251.7668 40.130086 259.93767 48.955984 268.04108" marker-end="url(#Arrow_Marker)" stroke="blue" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 88 300 C 94.3327 309.3324 111.49955 319.6675 107 328 C 102.50045 336.3325 67.9993 342.3341 61 350 C 54.0007 357.6659 60.16715 366.83405 65 374 C 68.37733 379.00777 75.174067 383.2026 81.805417 387.43634" marker-end="url(#Arrow_Marker)" stroke="blue" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><rect x="265.25" y="295.5" width="103.75" height="42" fill="white"/><rect x="265.25" y="295.5" width="103.75" height="42" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(270.25 295.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="65.35547">getXField(..)</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="25" textLength="64.68164">setXField(..)</tspan><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="39" textLength="10.001953">...</tspan></text><rect x="265.25" y="281.5" width="103.75" height="14" fill="white"/><rect x="265.25" y="281.5" width="103.75" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(270.25 281.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="54.041016">threadInfo</tspan></text><rect x="265.25" y="267.5" width="103.75" height="14" fill="white"/><rect x="265.25" y="267.5" width="103.75" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(270.25 267.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="25.86914" y="11" textLength="42.01172">MJIEnv</tspan></text><rect x="393.25" y="266.5" width="90" height="14" fill="white"/><rect x="393.25" y="266.5" width="90" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(398.25 266.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="500" x="0" y="11" textLength="19.347656">env</tspan></text><rect x="393.25" y="252.5" width="90" height="14" fill="white"/><rect x="393.25" y="252.5" width="90" height="14" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(398.25 252.5)" fill="black"><tspan font-family="Helvetica" font-size="12" font-weight="bold" x="9.0009766" y="11" textLength="61.998047">ThreadInfo</tspan></text><line x1="394" y1="275" x2="378.9" y2="275" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><line x1="314" y1="163" x2="298.9" y2="163" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 490 376 C 500.3323 365.0011 512.6675 354.9988 521 343 C 529.3325 331.0012 538.3335 317.332 540 304 C 541.6665 290.668 535.6662 273.9989 531 263 C 527.83756 255.54567 523.1433 250.53967 518.4748 245.49341" marker-end="url(#Arrow_Marker)" stroke="blue" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><path d="M 441 89 C 458.3316 96.9992 481.3345 102.6677 493 113 C 504.6655 123.3323 510.0001 135.16825 511 151 C 511.83488 164.21889 505.69802 181.85666 501.32146 198.37727" marker-end="url(#Arrow_Marker)" stroke="blue" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(482 115.125)" fill="blue"><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x="10.555176" y="14" textLength="24.889648">JPF</tspan><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x="7.051758" y="31" textLength="31.896484">class</tspan><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x=".4243164" y="48" textLength="45.151367">loading</tspan></text><text transform="translate(28 157.125)" fill="blue"><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x="19.555176" y="14" textLength="24.889648">JPF</tspan><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x="8.6518555" y="31" textLength="46.69629">method</tspan><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x=".4794922" y="48" textLength="63.041016">invocation</tspan></text><path d="M 422 412 C 431.3324 409.6669 443.50065 409.16625 450 405 C 456.49935 400.83375 462.3332 393.49935 461 387 C 459.6668 380.50065 455.6653 373.9992 442 366 C 430.2377 359.11475 407.60562 350.7459 388.13989 342.8098" marker-end="url(#Arrow_Marker)" stroke="blue" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/><text transform="translate(400 317.125)" fill="blue"><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x="9.555176" y="14" textLength="24.889648">JPF</tspan><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x="3.3208008" y="31" textLength="37.358398">object</tspan><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x=".21386719" y="48" textLength="43.572266">access</tspan></text><text transform="translate(82 22.125)" fill="blue"><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x=".4897461" y="14" textLength="112.02051">JPF (model) class</tspan></text><text transform="translate(307 445.125)" fill="blue"><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x=".21386719" y="14" textLength="106.572266">JVM (Java) class</tspan></text><line x1="24" y1="133" x2="541" y2="133" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1" stroke-dasharray="10,3,2,3"/><text transform="translate(109 301.125)" fill="blue"><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x=".41748047" y="14" textLength="52.910156">Java refl</tspan><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x="53.327637" y="14" textLength="62.254883">ection call</tspan></text><text transform="translate(488 310.125)" fill="blue"><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x=".09667969" y="14" textLength="19.448242">refl</tspan><tspan font-family="Helvetica" font-size="14" font-style="italic" font-weight="500" fill="blue" x="19.544922" y="14" textLength="37.358398">ection</tspan></text></g></g></svg>