Last active
December 13, 2015 19:48
-
-
Save wsfulton/4965046 to your computer and use it in GitHub Desktop.
SWIG Pygments syntax examples
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" | |
"http://www.w3.org/TR/html4/strict.dtd"> | |
<html> | |
<head> | |
<title></title> | |
<meta http-equiv="content-type" content="text/html; charset=latin1"> | |
<style type="text/css"> | |
td.linenos { background-color: #f0f0f0; padding-right: 10px; } | |
span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; } | |
pre { line-height: 125%; } | |
body .hll { background-color: #ffffcc } | |
body { background: #f8f8f8; } | |
body .c { color: #408080; font-style: italic } /* Comment */ | |
body .err { border: 1px solid #FF0000 } /* Error */ | |
body .k { color: #008000; font-weight: bold } /* Keyword */ | |
body .o { color: #666666 } /* Operator */ | |
body .cm { color: #408080; font-style: italic } /* Comment.Multiline */ | |
body .cp { color: #BC7A00 } /* Comment.Preproc */ | |
body .c1 { color: #408080; font-style: italic } /* Comment.Single */ | |
body .cs { color: #408080; font-style: italic } /* Comment.Special */ | |
body .gd { color: #A00000 } /* Generic.Deleted */ | |
body .ge { font-style: italic } /* Generic.Emph */ | |
body .gr { color: #FF0000 } /* Generic.Error */ | |
body .gh { color: #000080; font-weight: bold } /* Generic.Heading */ | |
body .gi { color: #00A000 } /* Generic.Inserted */ | |
body .go { color: #888888 } /* Generic.Output */ | |
body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ | |
body .gs { font-weight: bold } /* Generic.Strong */ | |
body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ | |
body .gt { color: #0044DD } /* Generic.Traceback */ | |
body .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ | |
body .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ | |
body .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ | |
body .kp { color: #008000 } /* Keyword.Pseudo */ | |
body .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ | |
body .kt { color: #B00040 } /* Keyword.Type */ | |
body .m { color: #666666 } /* Literal.Number */ | |
body .s { color: #BA2121 } /* Literal.String */ | |
body .na { color: #7D9029 } /* Name.Attribute */ | |
body .nb { color: #008000 } /* Name.Builtin */ | |
body .nc { color: #0000FF; font-weight: bold } /* Name.Class */ | |
body .no { color: #880000 } /* Name.Constant */ | |
body .nd { color: #AA22FF } /* Name.Decorator */ | |
body .ni { color: #999999; font-weight: bold } /* Name.Entity */ | |
body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ | |
body .nf { color: #0000FF } /* Name.Function */ | |
body .nl { color: #A0A000 } /* Name.Label */ | |
body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ | |
body .nt { color: #008000; font-weight: bold } /* Name.Tag */ | |
body .nv { color: #19177C } /* Name.Variable */ | |
body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ | |
body .w { color: #bbbbbb } /* Text.Whitespace */ | |
body .mf { color: #666666 } /* Literal.Number.Float */ | |
body .mh { color: #666666 } /* Literal.Number.Hex */ | |
body .mi { color: #666666 } /* Literal.Number.Integer */ | |
body .mo { color: #666666 } /* Literal.Number.Oct */ | |
body .sb { color: #BA2121 } /* Literal.String.Backtick */ | |
body .sc { color: #BA2121 } /* Literal.String.Char */ | |
body .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ | |
body .s2 { color: #BA2121 } /* Literal.String.Double */ | |
body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ | |
body .sh { color: #BA2121 } /* Literal.String.Heredoc */ | |
body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ | |
body .sx { color: #008000 } /* Literal.String.Other */ | |
body .sr { color: #BB6688 } /* Literal.String.Regex */ | |
body .s1 { color: #BA2121 } /* Literal.String.Single */ | |
body .ss { color: #19177C } /* Literal.String.Symbol */ | |
body .bp { color: #008000 } /* Name.Builtin.Pseudo */ | |
body .vc { color: #19177C } /* Name.Variable.Class */ | |
body .vg { color: #19177C } /* Name.Variable.Global */ | |
body .vi { color: #19177C } /* Name.Variable.Instance */ | |
body .il { color: #666666 } /* Literal.Number.Integer.Long */ | |
</style> | |
</head> | |
<body> | |
<h2></h2> | |
<div class="highlight"><pre><span class="cm">/* -----------------------------------------------------------------------------</span> | |
<span class="cm"> * java.swg</span> | |
<span class="cm"> *</span> | |
<span class="cm"> * Java typemaps</span> | |
<span class="cm"> * ----------------------------------------------------------------------------- */</span> | |
<span class="nf">%include</span> <span class="o"><</span><span class="n">javahead</span><span class="p">.</span><span class="n">swg</span><span class="o">></span> | |
<span class="cm">/* The jni, jtype and jstype typemaps work together and so there should be one of each. </span> | |
<span class="cm"> * The jni typemap contains the JNI type used in the JNI (C/C++) code. </span> | |
<span class="cm"> * The jtype typemap contains the Java type used in the JNI intermediary class. </span> | |
<span class="cm"> * The jstype typemap contains the Java type used in the Java proxy classes, type wrapper classes and module class. */</span> | |
<span class="cm">/* Fragments */</span> | |
<span class="nf">%fragment</span><span class="p">(</span><span class="s">"SWIG_PackData"</span><span class="p">,</span> <span class="s">"header"</span><span class="p">)</span> <span class="p">{</span> | |
<span class="cm">/* Pack binary data into a string */</span> | |
<span class="n">SWIGINTERN</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">SWIG_PackData</span><span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">c</span><span class="p">,</span> <span class="kt">void</span> <span class="o">*</span><span class="n">ptr</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">sz</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">static</span> <span class="k">const</span> <span class="kt">char</span> <span class="n">hex</span><span class="p">[</span><span class="mi">17</span><span class="p">]</span> <span class="o">=</span> <span class="s">"0123456789abcdef"</span><span class="p">;</span> | |
<span class="k">register</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="n">u</span> <span class="o">=</span> <span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span> <span class="n">ptr</span><span class="p">;</span> | |
<span class="k">register</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="n">eu</span> <span class="o">=</span> <span class="n">u</span> <span class="o">+</span> <span class="n">sz</span><span class="p">;</span> | |
<span class="k">for</span> <span class="p">(;</span> <span class="n">u</span> <span class="o">!=</span> <span class="n">eu</span><span class="p">;</span> <span class="o">++</span><span class="n">u</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">register</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">uu</span> <span class="o">=</span> <span class="o">*</span><span class="n">u</span><span class="p">;</span> | |
<span class="o">*</span><span class="p">(</span><span class="n">c</span><span class="o">++</span><span class="p">)</span> <span class="o">=</span> <span class="n">hex</span><span class="p">[(</span><span class="n">uu</span> <span class="o">&</span> <span class="mh">0xf0</span><span class="p">)</span> <span class="o">>></span> <span class="mi">4</span><span class="p">];</span> | |
<span class="o">*</span><span class="p">(</span><span class="n">c</span><span class="o">++</span><span class="p">)</span> <span class="o">=</span> <span class="n">hex</span><span class="p">[</span><span class="n">uu</span> <span class="o">&</span> <span class="mh">0xf</span><span class="p">];</span> | |
<span class="p">}</span> | |
<span class="k">return</span> <span class="n">c</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%fragment</span><span class="p">(</span><span class="s">"SWIG_UnPackData"</span><span class="p">,</span> <span class="s">"header"</span><span class="p">)</span> <span class="p">{</span> | |
<span class="cm">/* Unpack binary data from a string */</span> | |
<span class="n">SWIGINTERN</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">SWIG_UnpackData</span><span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">c</span><span class="p">,</span> <span class="kt">void</span> <span class="o">*</span><span class="n">ptr</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">sz</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">register</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="n">u</span> <span class="o">=</span> <span class="p">(</span><span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span> <span class="n">ptr</span><span class="p">;</span> | |
<span class="k">register</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">*</span><span class="n">eu</span> <span class="o">=</span> <span class="n">u</span> <span class="o">+</span> <span class="n">sz</span><span class="p">;</span> | |
<span class="k">for</span> <span class="p">(;</span> <span class="n">u</span> <span class="o">!=</span> <span class="n">eu</span><span class="p">;</span> <span class="o">++</span><span class="n">u</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">register</span> <span class="kt">char</span> <span class="n">d</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">c</span><span class="o">++</span><span class="p">);</span> | |
<span class="k">register</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="n">uu</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">((</span><span class="n">d</span> <span class="o">>=</span> <span class="sc">'0'</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">d</span> <span class="o"><=</span> <span class="sc">'9'</span><span class="p">))</span> | |
<span class="n">uu</span> <span class="o">=</span> <span class="p">((</span><span class="n">d</span> <span class="o">-</span> <span class="sc">'0'</span><span class="p">)</span> <span class="o"><<</span> <span class="mi">4</span><span class="p">);</span> | |
<span class="k">else</span> <span class="nf">if</span> <span class="p">((</span><span class="n">d</span> <span class="o">>=</span> <span class="sc">'a'</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">d</span> <span class="o"><=</span> <span class="sc">'f'</span><span class="p">))</span> | |
<span class="n">uu</span> <span class="o">=</span> <span class="p">((</span><span class="n">d</span> <span class="o">-</span> <span class="p">(</span><span class="sc">'a'</span><span class="o">-</span><span class="mi">10</span><span class="p">))</span> <span class="o"><<</span> <span class="mi">4</span><span class="p">);</span> | |
<span class="k">else</span> | |
<span class="k">return</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="p">)</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="n">d</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">c</span><span class="o">++</span><span class="p">);</span> | |
<span class="k">if</span> <span class="p">((</span><span class="n">d</span> <span class="o">>=</span> <span class="sc">'0'</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">d</span> <span class="o"><=</span> <span class="sc">'9'</span><span class="p">))</span> | |
<span class="n">uu</span> <span class="o">|=</span> <span class="p">(</span><span class="n">d</span> <span class="o">-</span> <span class="sc">'0'</span><span class="p">);</span> | |
<span class="k">else</span> <span class="nf">if</span> <span class="p">((</span><span class="n">d</span> <span class="o">>=</span> <span class="sc">'a'</span><span class="p">)</span> <span class="o">&&</span> <span class="p">(</span><span class="n">d</span> <span class="o"><=</span> <span class="sc">'f'</span><span class="p">))</span> | |
<span class="n">uu</span> <span class="o">|=</span> <span class="p">(</span><span class="n">d</span> <span class="o">-</span> <span class="p">(</span><span class="sc">'a'</span><span class="o">-</span><span class="mi">10</span><span class="p">));</span> | |
<span class="k">else</span> | |
<span class="k">return</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="p">)</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="o">*</span><span class="n">u</span> <span class="o">=</span> <span class="n">uu</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="k">return</span> <span class="n">c</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="cm">/* Primitive types */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">bool</span><span class="p">,</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> <span class="s">"jboolean"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"jchar"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"jbyte"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"jshort"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">short</span> <span class="o">&</span> <span class="s">"jshort"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span> <span class="s">"jint"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">int</span> <span class="o">&</span> <span class="s">"jint"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span> <span class="s">"jlong"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"jint"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"jlong"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"jlong"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"jobject"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">float</span><span class="p">,</span> <span class="k">const</span> <span class="kt">float</span> <span class="o">&</span> <span class="s">"jfloat"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">double</span><span class="p">,</span> <span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> <span class="s">"jdouble"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">void</span> <span class="s">"void"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">bool</span><span class="p">,</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> <span class="s">"boolean"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"char"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"byte"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"short"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">short</span> <span class="o">&</span> <span class="s">"short"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span> <span class="s">"int"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">int</span> <span class="o">&</span> <span class="s">"int"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"int"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"java.math.BigInteger"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">float</span><span class="p">,</span> <span class="k">const</span> <span class="kt">float</span> <span class="o">&</span> <span class="s">"float"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">double</span><span class="p">,</span> <span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> <span class="s">"double"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">void</span> <span class="s">"void"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">bool</span><span class="p">,</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> <span class="s">"boolean"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"char"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"byte"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"short"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">short</span> <span class="o">&</span> <span class="s">"short"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span> <span class="s">"int"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">int</span> <span class="o">&</span> <span class="s">"int"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"int"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"java.math.BigInteger"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">float</span><span class="p">,</span> <span class="k">const</span> <span class="kt">float</span> <span class="o">&</span> <span class="s">"float"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">double</span><span class="p">,</span> <span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> <span class="s">"double"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">void</span> <span class="s">"void"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*&</span><span class="p">,</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="s">"jstring"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*&</span><span class="p">,</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="s">"String"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*&</span><span class="p">,</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="s">"String"</span> | |
<span class="cm">/* JNI types */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jboolean</span> <span class="s">"jboolean"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jchar</span> <span class="s">"jchar"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jbyte</span> <span class="s">"jbyte"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jshort</span> <span class="s">"jshort"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jint</span> <span class="s">"jint"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jlong</span> <span class="s">"jlong"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jfloat</span> <span class="s">"jfloat"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jdouble</span> <span class="s">"jdouble"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jstring</span> <span class="s">"jstring"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jobject</span> <span class="s">"jobject"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jbooleanArray</span> <span class="s">"jbooleanArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jcharArray</span> <span class="s">"jcharArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jbyteArray</span> <span class="s">"jbyteArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jshortArray</span> <span class="s">"jshortArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jintArray</span> <span class="s">"jintArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jlongArray</span> <span class="s">"jlongArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jfloatArray</span> <span class="s">"jfloatArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jdoubleArray</span> <span class="s">"jdoubleArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">jobjectArray</span> <span class="s">"jobjectArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jboolean</span> <span class="s">"boolean"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jchar</span> <span class="s">"char"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jbyte</span> <span class="s">"byte"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jshort</span> <span class="s">"short"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jint</span> <span class="s">"int"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jlong</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jfloat</span> <span class="s">"float"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jdouble</span> <span class="s">"double"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jstring</span> <span class="s">"String"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jobject</span> <span class="s">"Object"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jbooleanArray</span> <span class="s">"boolean[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jcharArray</span> <span class="s">"char[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jbyteArray</span> <span class="s">"byte[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jshortArray</span> <span class="s">"short[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jintArray</span> <span class="s">"int[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jlongArray</span> <span class="s">"long[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jfloatArray</span> <span class="s">"float[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jdoubleArray</span> <span class="s">"double[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">jobjectArray</span> <span class="s">"Object[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jboolean</span> <span class="s">"boolean"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jchar</span> <span class="s">"char"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jbyte</span> <span class="s">"byte"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jshort</span> <span class="s">"short"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jint</span> <span class="s">"int"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jlong</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jfloat</span> <span class="s">"float"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jdouble</span> <span class="s">"double"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jstring</span> <span class="s">"String"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jobject</span> <span class="s">"Object"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jbooleanArray</span> <span class="s">"boolean[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jcharArray</span> <span class="s">"char[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jbyteArray</span> <span class="s">"byte[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jshortArray</span> <span class="s">"short[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jintArray</span> <span class="s">"int[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jlongArray</span> <span class="s">"long[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jfloatArray</span> <span class="s">"float[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jdoubleArray</span> <span class="s">"double[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">jobjectArray</span> <span class="s">"Object[]"</span> | |
<span class="cm">/* Non primitive types */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="s">"jlong"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="s">"$&javaclassname"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">[]</span> <span class="s">"jlong"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">[]</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">[]</span> <span class="s">"$javaclassname"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span> <span class="s">"jlong"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span> <span class="s">"$javaclassname"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> <span class="s">"jlong"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> <span class="s">"$javaclassname"</span> | |
<span class="cm">/* pointer to a class member */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">"jstring"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">"String"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">"$javaclassname"</span> | |
<span class="cm">/* The following are the in, out, freearg, argout typemaps. These are the JNI code generating typemaps for converting from Java to C and visa versa. */</span> | |
<span class="cm">/* primitive types */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="kt">bool</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$1</span> <span class="o">=</span> <span class="n">$input</span> <span class="o">?</span> <span class="nb">true</span> <span class="o">:</span> <span class="nb">false</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">)</span> <span class="kt">bool</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="n">$input</span> <span class="o">?</span> <span class="nb">true</span> <span class="o">:</span> <span class="nb">false</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="kt">bool</span> <span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="kt">bool</span> <span class="s">"$javacall"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">short</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> | |
<span class="kt">int</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> | |
<span class="kt">long</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">float</span><span class="p">,</span> | |
<span class="kt">double</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$1</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span><span class="n">$input</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">)</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">short</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> | |
<span class="kt">int</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> | |
<span class="kt">long</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">float</span><span class="p">,</span> | |
<span class="kt">double</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span><span class="n">$input</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"Z"</span><span class="p">)</span> <span class="kt">bool</span> <span class="s">"$input = (jboolean) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"C"</span><span class="p">)</span> <span class="kt">char</span> <span class="s">"$input = (jint) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"B"</span><span class="p">)</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="s">"$input = (jbyte) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"S"</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="s">"$input = (jshort) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"S"</span><span class="p">)</span> <span class="kt">short</span> <span class="s">"$input = (jshort) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"I"</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="s">"$input = (jint) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"I"</span><span class="p">)</span> <span class="kt">int</span> <span class="s">"$input = (jint) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"J"</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="s">"$input = (jlong) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"I"</span><span class="p">)</span> <span class="kt">long</span> <span class="s">"$input = (jint) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"J"</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="s">"$input = (jlong) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"J"</span><span class="p">)</span> <span class="kt">long</span> <span class="kt">long</span> <span class="s">"$input = (jlong) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"F"</span><span class="p">)</span> <span class="kt">float</span> <span class="s">"$input = (jfloat) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"D"</span><span class="p">)</span> <span class="kt">double</span> <span class="s">"$input = (jdouble) $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">short</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> | |
<span class="kt">int</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> | |
<span class="kt">long</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">float</span><span class="p">,</span> | |
<span class="kt">double</span> | |
<span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">short</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> | |
<span class="kt">int</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> | |
<span class="kt">long</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">float</span><span class="p">,</span> | |
<span class="kt">double</span> | |
<span class="s">"$javacall"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">bool</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jboolean</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">char</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jchar</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jbyte</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jshort</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">short</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jshort</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jint</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">int</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jint</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jlong</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">long</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jint</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jlong</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jlong</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">float</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jfloat</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">double</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jdouble</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="cm">/* unsigned long long */</span> | |
<span class="cm">/* Convert from BigInteger using the toByteArray member function */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="p">{</span> | |
<span class="n">jclass</span> <span class="n">clazz</span><span class="p">;</span> | |
<span class="n">jmethodID</span> <span class="n">mid</span><span class="p">;</span> | |
<span class="n">jbyteArray</span> <span class="n">ba</span><span class="p">;</span> | |
<span class="n">jbyte</span><span class="o">*</span> <span class="n">bae</span><span class="p">;</span> | |
<span class="n">jsize</span> <span class="n">sz</span><span class="p">;</span> | |
<span class="kt">int</span> <span class="n">i</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaNullPointerException</span><span class="p">,</span> <span class="s">"BigInteger null"</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">clazz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">GetObjectClass</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">);</span> | |
<span class="n">mid</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">GetMethodID</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="s">"toByteArray"</span><span class="p">,</span> <span class="s">"()[B"</span><span class="p">);</span> | |
<span class="n">ba</span> <span class="o">=</span> <span class="p">(</span><span class="n">jbyteArray</span><span class="p">)</span><span class="n">JCALL2</span><span class="p">(</span><span class="n">CallObjectMethod</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="n">mid</span><span class="p">);</span> | |
<span class="n">bae</span> <span class="o">=</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">GetByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">sz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">GetArrayLength</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">);</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="n">i</span><span class="o"><</span><span class="n">sz</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="p">(</span><span class="n">$1_type</span><span class="p">)(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="p">)</span><span class="n">bae</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> | |
<span class="p">}</span> | |
<span class="n">JCALL3</span><span class="p">(</span><span class="n">ReleaseByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="n">bae</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="p">{</span> | |
<span class="n">jclass</span> <span class="n">clazz</span><span class="p">;</span> | |
<span class="n">jmethodID</span> <span class="n">mid</span><span class="p">;</span> | |
<span class="n">jbyteArray</span> <span class="n">ba</span><span class="p">;</span> | |
<span class="n">jbyte</span><span class="o">*</span> <span class="n">bae</span><span class="p">;</span> | |
<span class="n">jsize</span> <span class="n">sz</span><span class="p">;</span> | |
<span class="kt">int</span> <span class="n">i</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaNullPointerException</span><span class="p">,</span> <span class="s">"BigInteger null"</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">clazz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">GetObjectClass</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">);</span> | |
<span class="n">mid</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">GetMethodID</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="s">"toByteArray"</span><span class="p">,</span> <span class="s">"()[B"</span><span class="p">);</span> | |
<span class="n">ba</span> <span class="o">=</span> <span class="p">(</span><span class="n">jbyteArray</span><span class="p">)</span><span class="n">JCALL2</span><span class="p">(</span><span class="n">CallObjectMethod</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="n">mid</span><span class="p">);</span> | |
<span class="n">bae</span> <span class="o">=</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">GetByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">sz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">GetArrayLength</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">);</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="n">i</span><span class="o"><</span><span class="n">sz</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">$result</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="p">(</span><span class="n">$1_type</span><span class="p">)(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="p">)</span><span class="n">bae</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> | |
<span class="p">}</span> | |
<span class="n">JCALL3</span><span class="p">(</span><span class="n">ReleaseByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="n">bae</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="cm">/* Convert to BigInteger - byte array holds number in 2's complement big endian format */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="p">{</span> | |
<span class="n">jbyteArray</span> <span class="n">ba</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">NewByteArray</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="mi">9</span><span class="p">);</span> | |
<span class="n">jbyte</span><span class="o">*</span> <span class="n">bae</span> <span class="o">=</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">GetByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">jclass</span> <span class="n">clazz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">FindClass</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="s">"java/math/BigInteger"</span><span class="p">);</span> | |
<span class="n">jmethodID</span> <span class="n">mid</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">GetMethodID</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="s">"<init>"</span><span class="p">,</span> <span class="s">"([B)V"</span><span class="p">);</span> | |
<span class="n">jobject</span> <span class="n">bigint</span><span class="p">;</span> | |
<span class="kt">int</span> <span class="n">i</span><span class="p">;</span> | |
<span class="n">bae</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span> <span class="n">i</span><span class="o"><</span><span class="mi">9</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span> <span class="p">)</span> <span class="p">{</span> | |
<span class="n">bae</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">jbyte</span><span class="p">)(</span><span class="n">$1</span><span class="o">>></span><span class="mi">8</span><span class="o">*</span><span class="p">(</span><span class="mi">8</span><span class="o">-</span><span class="n">i</span><span class="p">));</span> | |
<span class="p">}</span> | |
<span class="n">JCALL3</span><span class="p">(</span><span class="n">ReleaseByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="n">bae</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">bigint</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">NewObject</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="n">mid</span><span class="p">,</span> <span class="n">ba</span><span class="p">);</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="n">bigint</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="cm">/* Convert to BigInteger (see out typemap) */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"Ljava/math/BigInteger;"</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">{</span> | |
<span class="n">jbyteArray</span> <span class="n">ba</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">NewByteArray</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="mi">9</span><span class="p">);</span> | |
<span class="n">jbyte</span><span class="o">*</span> <span class="n">bae</span> <span class="o">=</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">GetByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">jclass</span> <span class="n">clazz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">FindClass</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="s">"java/math/BigInteger"</span><span class="p">);</span> | |
<span class="n">jmethodID</span> <span class="n">mid</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">GetMethodID</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="s">"<init>"</span><span class="p">,</span> <span class="s">"([B)V"</span><span class="p">);</span> | |
<span class="n">jobject</span> <span class="n">bigint</span><span class="p">;</span> | |
<span class="kt">int</span> <span class="n">swig_i</span><span class="p">;</span> | |
<span class="n">bae</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">for</span><span class="p">(</span><span class="n">swig_i</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span> <span class="n">swig_i</span><span class="o"><</span><span class="mi">9</span><span class="p">;</span> <span class="n">swig_i</span><span class="o">++</span> <span class="p">)</span> <span class="p">{</span> | |
<span class="n">bae</span><span class="p">[</span><span class="n">swig_i</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">jbyte</span><span class="p">)(</span><span class="n">$1</span><span class="o">>></span><span class="mi">8</span><span class="o">*</span><span class="p">(</span><span class="mi">8</span><span class="o">-</span><span class="n">swig_i</span><span class="p">));</span> | |
<span class="p">}</span> | |
<span class="n">JCALL3</span><span class="p">(</span><span class="n">ReleaseByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="n">bae</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">bigint</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">NewObject</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="n">mid</span><span class="p">,</span> <span class="n">ba</span><span class="p">);</span> | |
<span class="n">$input</span> <span class="o">=</span> <span class="n">bigint</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="s">"$javacall"</span> | |
<span class="cm">/* char * - treat as String */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span><span class="n">JCALL2</span><span class="p">(</span><span class="n">GetStringUTFChars</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$1</span><span class="p">)</span> <span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">warning</span><span class="o">=</span><span class="n">SWIGWARN_TYPEMAP_DIRECTOROUT_PTR_MSG</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span><span class="n">JCALL2</span><span class="p">(</span><span class="n">GetStringUTFChars</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$result</span><span class="p">)</span> <span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"Ljava/lang/String;"</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span> <span class="p">{</span> | |
<span class="n">$input</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$1</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$input</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">NewStringUTF</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">$1</span><span class="p">);</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$input</span><span class="p">)</span> <span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">freearg</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">$1</span><span class="p">)</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">ReleaseStringUTFChars</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">$1</span><span class="p">);</span> <span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">$1</span><span class="p">)</span> <span class="n">$result</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">NewStringUTF</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">$1</span><span class="p">);</span> <span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span> <span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span> <span class="s">"$javacall"</span> | |
<span class="cm">/* char *& - treat as String */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">temp</span> <span class="o">=</span> <span class="p">(</span><span class="n">$*1_ltype</span><span class="p">)</span><span class="n">JCALL2</span><span class="p">(</span><span class="n">GetStringUTFChars</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">temp</span><span class="p">)</span> <span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="o">&</span><span class="n">temp</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">freearg</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*&</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">$1</span> <span class="o">&&</span> <span class="o">*</span><span class="n">$1</span><span class="p">)</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">ReleaseStringUTFChars</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">);</span> <span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*&</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="o">*</span><span class="n">$1</span><span class="p">)</span> <span class="n">$result</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">NewStringUTF</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">);</span> <span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="kt">void</span> <span class="s">""</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="kt">void</span> <span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="kt">void</span> <span class="s">"$javacall"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"V"</span><span class="p">)</span> <span class="kt">void</span> <span class="s">""</span> | |
<span class="cm">/* primitive types by reference */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">)</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">temp</span> <span class="o">=</span> <span class="n">$input</span> <span class="o">?</span> <span class="nb">true</span> <span class="o">:</span> <span class="nb">false</span><span class="p">;</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="o">&</span><span class="n">temp</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">,</span><span class="n">warning</span><span class="o">=</span><span class="n">SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG</span><span class="p">)</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> | |
<span class="o">%</span><span class="p">{</span> <span class="k">static</span> <span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">;</span> | |
<span class="n">temp</span> <span class="o">=</span> <span class="n">$input</span> <span class="o">?</span> <span class="nb">true</span> <span class="o">:</span> <span class="nb">false</span><span class="p">;</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="o">&</span><span class="n">temp</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> <span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> <span class="s">"$javacall"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">short</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">int</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">float</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">)</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">temp</span> <span class="o">=</span> <span class="p">(</span><span class="n">$*1_ltype</span><span class="p">)</span><span class="n">$input</span><span class="p">;</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="o">&</span><span class="n">temp</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">,</span><span class="n">warning</span><span class="o">=</span><span class="n">SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG</span><span class="p">)</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">short</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">int</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">float</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> | |
<span class="o">%</span><span class="p">{</span> <span class="k">static</span> <span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">;</span> | |
<span class="n">temp</span> <span class="o">=</span> <span class="p">(</span><span class="n">$*1_ltype</span><span class="p">)</span><span class="n">$input</span><span class="p">;</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="o">&</span><span class="n">temp</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"Z"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> <span class="s">"$input = (jboolean)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"C"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"$input = (jchar)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"B"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"$input = (jbyte)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"S"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span> <span class="s">"$input = (jshort)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"S"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">short</span> <span class="o">&</span> <span class="s">"$input = (jshort)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"I"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span> <span class="s">"$input = (jint)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"I"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">int</span> <span class="o">&</span> <span class="s">"$input = (jint)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"J"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span> <span class="s">"$input = (jlong)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"I"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"$input = (jint)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"J"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"$input = (jlong)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"J"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"$input = (jlong)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"F"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">float</span> <span class="o">&</span> <span class="s">"$input = (jfloat)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"D"</span><span class="p">)</span> <span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> <span class="s">"$input = (jdouble)$1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">short</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">int</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">float</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">)</span> | |
<span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">short</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">int</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">float</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">),</span> | |
<span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">)</span> | |
<span class="s">"$javacall"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jboolean</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jchar</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jbyte</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jshort</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">short</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jshort</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jint</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">int</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jint</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jlong</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">long</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jint</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jlong</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jlong</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">float</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jfloat</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">jdouble</span><span class="p">)</span><span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="cm">/* const unsigned long long & */</span> | |
<span class="cm">/* Similar to unsigned long long */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">jclass</span> <span class="n">clazz</span><span class="p">;</span> | |
<span class="n">jmethodID</span> <span class="n">mid</span><span class="p">;</span> | |
<span class="n">jbyteArray</span> <span class="n">ba</span><span class="p">;</span> | |
<span class="n">jbyte</span><span class="o">*</span> <span class="n">bae</span><span class="p">;</span> | |
<span class="n">jsize</span> <span class="n">sz</span><span class="p">;</span> | |
<span class="kt">int</span> <span class="n">i</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaNullPointerException</span><span class="p">,</span> <span class="s">"BigInteger null"</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">clazz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">GetObjectClass</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">);</span> | |
<span class="n">mid</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">GetMethodID</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="s">"toByteArray"</span><span class="p">,</span> <span class="s">"()[B"</span><span class="p">);</span> | |
<span class="n">ba</span> <span class="o">=</span> <span class="p">(</span><span class="n">jbyteArray</span><span class="p">)</span><span class="n">JCALL2</span><span class="p">(</span><span class="n">CallObjectMethod</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="n">mid</span><span class="p">);</span> | |
<span class="n">bae</span> <span class="o">=</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">GetByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">sz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">GetArrayLength</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">);</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="o">&</span><span class="n">temp</span><span class="p">;</span> | |
<span class="n">temp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="n">i</span><span class="o"><</span><span class="n">sz</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">temp</span> <span class="o">=</span> <span class="p">(</span><span class="n">temp</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="p">(</span><span class="n">$*1_ltype</span><span class="p">)(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="p">)</span><span class="n">bae</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> | |
<span class="p">}</span> | |
<span class="n">JCALL3</span><span class="p">(</span><span class="n">ReleaseByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="n">bae</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">,</span><span class="n">warning</span><span class="o">=</span><span class="n">SWIGWARN_TYPEMAP_THREAD_UNSAFE_MSG</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">{</span> | |
<span class="k">static</span> <span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">;</span> | |
<span class="n">jclass</span> <span class="n">clazz</span><span class="p">;</span> | |
<span class="n">jmethodID</span> <span class="n">mid</span><span class="p">;</span> | |
<span class="n">jbyteArray</span> <span class="n">ba</span><span class="p">;</span> | |
<span class="n">jbyte</span><span class="o">*</span> <span class="n">bae</span><span class="p">;</span> | |
<span class="n">jsize</span> <span class="n">sz</span><span class="p">;</span> | |
<span class="kt">int</span> <span class="n">i</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaNullPointerException</span><span class="p">,</span> <span class="s">"BigInteger null"</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">clazz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">GetObjectClass</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">);</span> | |
<span class="n">mid</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">GetMethodID</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="s">"toByteArray"</span><span class="p">,</span> <span class="s">"()[B"</span><span class="p">);</span> | |
<span class="n">ba</span> <span class="o">=</span> <span class="p">(</span><span class="n">jbyteArray</span><span class="p">)</span><span class="n">JCALL2</span><span class="p">(</span><span class="n">CallObjectMethod</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="n">mid</span><span class="p">);</span> | |
<span class="n">bae</span> <span class="o">=</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">GetByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">sz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">GetArrayLength</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">);</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="o">&</span><span class="n">temp</span><span class="p">;</span> | |
<span class="n">temp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="n">i</span><span class="o"><</span><span class="n">sz</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">temp</span> <span class="o">=</span> <span class="p">(</span><span class="n">temp</span> <span class="o"><<</span> <span class="mi">8</span><span class="p">)</span> <span class="o">|</span> <span class="p">(</span><span class="n">$*1_ltype</span><span class="p">)(</span><span class="kt">unsigned</span> <span class="kt">char</span><span class="p">)</span><span class="n">bae</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> | |
<span class="p">}</span> | |
<span class="n">JCALL3</span><span class="p">(</span><span class="n">ReleaseByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="n">bae</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">{</span> | |
<span class="n">jbyteArray</span> <span class="n">ba</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">NewByteArray</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="mi">9</span><span class="p">);</span> | |
<span class="n">jbyte</span><span class="o">*</span> <span class="n">bae</span> <span class="o">=</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">GetByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">jclass</span> <span class="n">clazz</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">FindClass</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="s">"java/math/BigInteger"</span><span class="p">);</span> | |
<span class="n">jmethodID</span> <span class="n">mid</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">GetMethodID</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="s">"<init>"</span><span class="p">,</span> <span class="s">"([B)V"</span><span class="p">);</span> | |
<span class="n">jobject</span> <span class="n">bigint</span><span class="p">;</span> | |
<span class="kt">int</span> <span class="n">i</span><span class="p">;</span> | |
<span class="n">bae</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">for</span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span> <span class="n">i</span><span class="o"><</span><span class="mi">9</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span> <span class="p">)</span> <span class="p">{</span> | |
<span class="n">bae</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">jbyte</span><span class="p">)(</span><span class="o">*</span><span class="n">$1</span><span class="o">>></span><span class="mi">8</span><span class="o">*</span><span class="p">(</span><span class="mi">8</span><span class="o">-</span><span class="n">i</span><span class="p">));</span> | |
<span class="p">}</span> | |
<span class="n">JCALL3</span><span class="p">(</span><span class="n">ReleaseByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">ba</span><span class="p">,</span> <span class="n">bae</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">bigint</span> <span class="o">=</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">NewObject</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">clazz</span><span class="p">,</span> <span class="n">mid</span><span class="p">,</span> <span class="n">ba</span><span class="p">);</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="n">bigint</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> <span class="s">"$javacall"</span> | |
<span class="cm">/* Default handling. Object passed by value. Convert to a pointer */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">$&1_type</span> <span class="n">argp</span><span class="p">)</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">argp</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">argp</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaNullPointerException</span><span class="p">,</span> <span class="s">"Attempt to dereference null $1_type"</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="o">*</span><span class="n">argp</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">$&1_type</span> <span class="n">argp</span><span class="p">)</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">argp</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">argp</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaNullPointerException</span><span class="p">,</span> <span class="s">"Unexpected null return for type $1_type"</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="o">*</span><span class="n">argp</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="n">SWIGTYPE</span> | |
<span class="cp">#ifdef __cplusplus</span> | |
<span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&</span><span class="n">$result</span> <span class="o">=</span> <span class="k">new</span> <span class="n">$1_ltype</span><span class="p">((</span><span class="k">const</span> <span class="n">$1_ltype</span> <span class="o">&</span><span class="p">)</span><span class="n">$1</span><span class="p">);</span> <span class="o">%</span><span class="p">}</span> | |
<span class="cp">#else</span> | |
<span class="p">{</span> | |
<span class="n">$&1_ltype</span> <span class="n">$1ptr</span> <span class="o">=</span> <span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span> <span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="n">$1_ltype</span><span class="p">));</span> | |
<span class="n">memmove</span><span class="p">(</span><span class="n">$1ptr</span><span class="p">,</span> <span class="o">&</span><span class="n">$1</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">$1_type</span><span class="p">));</span> | |
<span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&</span><span class="n">$result</span> <span class="o">=</span> <span class="n">$1ptr</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="cp">#endif</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"L$packagepath/$&javaclassname;"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$input</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="o">*</span><span class="p">((</span><span class="n">$&1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">)</span> <span class="o">=</span> <span class="o">&</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="s">"new $&javaclassname($jniinput, false)"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="s">"$&javaclassname.getCPtr($javacall)"</span> | |
<span class="cm">/* Generic pointers and references */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span> <span class="o">%</span><span class="p">{</span> <span class="n">$1</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="n">fragment</span><span class="o">=</span><span class="s">"SWIG_UnPackData"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">temp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">temp</span> <span class="o">=</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">GetStringUTFChars</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">temp</span><span class="p">)</span> <span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">SWIG_UnpackData</span><span class="p">(</span><span class="n">temp</span><span class="p">,</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)</span><span class="o">&</span><span class="n">$1</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">$1</span><span class="p">));</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> <span class="o">%</span><span class="p">{</span> <span class="n">$1</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$1</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaNullPointerException</span><span class="p">,</span> <span class="s">"$1_type reference is null"</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span> | |
<span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$result</span> <span class="o">=</span> <span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">fragment</span><span class="o">=</span><span class="s">"SWIG_PackData"</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="p">{</span> | |
<span class="kt">char</span> <span class="n">buf</span><span class="p">[</span><span class="mi">128</span><span class="p">];</span> | |
<span class="kt">char</span> <span class="o">*</span><span class="n">data</span> <span class="o">=</span> <span class="n">SWIG_PackData</span><span class="p">(</span><span class="n">buf</span><span class="p">,</span> <span class="p">(</span><span class="kt">void</span> <span class="o">*</span><span class="p">)</span><span class="o">&</span><span class="n">$1</span><span class="p">,</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">$1</span><span class="p">));</span> | |
<span class="o">*</span><span class="n">data</span> <span class="o">=</span> <span class="sc">'\0'</span><span class="p">;</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">NewStringUTF</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">buf</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> | |
<span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$result</span> <span class="o">=</span> <span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">,</span> <span class="n">warning</span><span class="o">=</span><span class="n">SWIGWARN_TYPEMAP_DIRECTOROUT_PTR_MSG</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">,</span> <span class="n">warning</span><span class="o">=</span><span class="n">SWIGWARN_TYPEMAP_DIRECTOROUT_PTR_MSG</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"L$packagepath/$javaclassname;"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span> | |
<span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">((</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">)</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span> <span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"L$packagepath/$javaclassname;"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> | |
<span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">((</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">)</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span> <span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">,</span> <span class="n">warning</span><span class="o">=</span><span class="n">SWIGWARN_TYPEMAP_DIRECTOROUT_PTR_MSG</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> | |
<span class="o">%</span><span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaNullPointerException</span><span class="p">,</span> <span class="s">"Unexpected null return for type $1_type"</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"L$packagepath/$javaclassname;"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> | |
<span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span> <span class="o">&</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">"($jniinput == 0) ? null : new $javaclassname($jniinput, false)"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> <span class="s">"new $javaclassname($jniinput, false)"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">),</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> <span class="s">"$javaclassname.getCPtr($javacall)"</span> | |
<span class="cm">/* Default array handling */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">[]</span> <span class="o">%</span><span class="p">{</span> <span class="n">$1</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">[]</span> <span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">(</span><span class="n">$&1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$result</span> <span class="o">=</span> <span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">freearg</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="n">SWIGTYPE</span> <span class="p">[]</span> <span class="s">""</span> | |
<span class="cm">/* char arrays - treat as String */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span><span class="n">JCALL2</span><span class="p">(</span><span class="n">GetStringUTFChars</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$1</span><span class="p">)</span> <span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$result</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span><span class="n">JCALL2</span><span class="p">(</span><span class="n">GetStringUTFChars</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$result</span><span class="p">)</span> <span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"Ljava/lang/String;"</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="p">{</span> | |
<span class="n">$input</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$1</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$input</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">NewStringUTF</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">$1</span><span class="p">);</span> | |
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">$input</span><span class="p">)</span> <span class="k">return</span> <span class="n">$null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">argout</span><span class="p">)</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="s">""</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">freearg</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">$1</span><span class="p">)</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">ReleaseStringUTFChars</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">$1</span><span class="p">);</span> <span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">noblock</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">$1</span><span class="p">)</span> <span class="n">$result</span> <span class="o">=</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">NewStringUTF</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="p">)</span><span class="n">$1</span><span class="p">);</span> <span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="s">"$javacall"</span> | |
<span class="cm">/* JNI types */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="n">jboolean</span><span class="p">,</span> | |
<span class="n">jchar</span><span class="p">,</span> | |
<span class="n">jbyte</span><span class="p">,</span> | |
<span class="n">jshort</span><span class="p">,</span> | |
<span class="n">jint</span><span class="p">,</span> | |
<span class="n">jlong</span><span class="p">,</span> | |
<span class="n">jfloat</span><span class="p">,</span> | |
<span class="n">jdouble</span><span class="p">,</span> | |
<span class="n">jstring</span><span class="p">,</span> | |
<span class="n">jobject</span><span class="p">,</span> | |
<span class="n">jbooleanArray</span><span class="p">,</span> | |
<span class="n">jcharArray</span><span class="p">,</span> | |
<span class="n">jbyteArray</span><span class="p">,</span> | |
<span class="n">jshortArray</span><span class="p">,</span> | |
<span class="n">jintArray</span><span class="p">,</span> | |
<span class="n">jlongArray</span><span class="p">,</span> | |
<span class="n">jfloatArray</span><span class="p">,</span> | |
<span class="n">jdoubleArray</span><span class="p">,</span> | |
<span class="n">jobjectArray</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$1</span> <span class="o">=</span> <span class="n">$input</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorout</span><span class="p">)</span> <span class="n">jboolean</span><span class="p">,</span> | |
<span class="n">jchar</span><span class="p">,</span> | |
<span class="n">jbyte</span><span class="p">,</span> | |
<span class="n">jshort</span><span class="p">,</span> | |
<span class="n">jint</span><span class="p">,</span> | |
<span class="n">jlong</span><span class="p">,</span> | |
<span class="n">jfloat</span><span class="p">,</span> | |
<span class="n">jdouble</span><span class="p">,</span> | |
<span class="n">jstring</span><span class="p">,</span> | |
<span class="n">jobject</span><span class="p">,</span> | |
<span class="n">jbooleanArray</span><span class="p">,</span> | |
<span class="n">jcharArray</span><span class="p">,</span> | |
<span class="n">jbyteArray</span><span class="p">,</span> | |
<span class="n">jshortArray</span><span class="p">,</span> | |
<span class="n">jintArray</span><span class="p">,</span> | |
<span class="n">jlongArray</span><span class="p">,</span> | |
<span class="n">jfloatArray</span><span class="p">,</span> | |
<span class="n">jdoubleArray</span><span class="p">,</span> | |
<span class="n">jobjectArray</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="n">$input</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="n">jboolean</span><span class="p">,</span> | |
<span class="n">jchar</span><span class="p">,</span> | |
<span class="n">jbyte</span><span class="p">,</span> | |
<span class="n">jshort</span><span class="p">,</span> | |
<span class="n">jint</span><span class="p">,</span> | |
<span class="n">jlong</span><span class="p">,</span> | |
<span class="n">jfloat</span><span class="p">,</span> | |
<span class="n">jdouble</span><span class="p">,</span> | |
<span class="n">jstring</span><span class="p">,</span> | |
<span class="n">jobject</span><span class="p">,</span> | |
<span class="n">jbooleanArray</span><span class="p">,</span> | |
<span class="n">jcharArray</span><span class="p">,</span> | |
<span class="n">jbyteArray</span><span class="p">,</span> | |
<span class="n">jshortArray</span><span class="p">,</span> | |
<span class="n">jintArray</span><span class="p">,</span> | |
<span class="n">jlongArray</span><span class="p">,</span> | |
<span class="n">jfloatArray</span><span class="p">,</span> | |
<span class="n">jdoubleArray</span><span class="p">,</span> | |
<span class="n">jobjectArray</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">$result</span> <span class="o">=</span> <span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"Z"</span><span class="p">)</span> <span class="n">jboolean</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"C"</span><span class="p">)</span> <span class="n">jchar</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"B"</span><span class="p">)</span> <span class="n">jbyte</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"S"</span><span class="p">)</span> <span class="n">jshort</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"I"</span><span class="p">)</span> <span class="n">jint</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"J"</span><span class="p">)</span> <span class="n">jlong</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"F"</span><span class="p">)</span> <span class="n">jfloat</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"D"</span><span class="p">)</span> <span class="n">jdouble</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"Ljava/lang/String;"</span><span class="p">)</span> <span class="n">jstring</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"Ljava/lang/Object;"</span><span class="p">,</span><span class="n">nouse</span><span class="o">=</span><span class="s">"1"</span><span class="p">)</span> <span class="n">jobject</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"[Z"</span><span class="p">)</span> <span class="n">jbooleanArray</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"[C"</span><span class="p">)</span> <span class="n">jcharArray</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"[B"</span><span class="p">)</span> <span class="n">jbyteArray</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"[S"</span><span class="p">)</span> <span class="n">jshortArray</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"[I"</span><span class="p">)</span> <span class="n">jintArray</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"[J"</span><span class="p">)</span> <span class="n">jlongArray</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"[F"</span><span class="p">)</span> <span class="n">jfloatArray</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"[D"</span><span class="p">)</span> <span class="n">jdoubleArray</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span><span class="n">descriptor</span><span class="o">=</span><span class="s">"[Ljava/lang/Object;"</span><span class="p">,</span><span class="n">nouse</span><span class="o">=</span><span class="s">"1"</span><span class="p">)</span> <span class="n">jobjectArray</span> <span class="s">"$input = $1;"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorin</span><span class="p">)</span> <span class="n">jboolean</span><span class="p">,</span> | |
<span class="n">jchar</span><span class="p">,</span> | |
<span class="n">jbyte</span><span class="p">,</span> | |
<span class="n">jshort</span><span class="p">,</span> | |
<span class="n">jint</span><span class="p">,</span> | |
<span class="n">jlong</span><span class="p">,</span> | |
<span class="n">jfloat</span><span class="p">,</span> | |
<span class="n">jdouble</span><span class="p">,</span> | |
<span class="n">jstring</span><span class="p">,</span> | |
<span class="n">jobject</span><span class="p">,</span> | |
<span class="n">jbooleanArray</span><span class="p">,</span> | |
<span class="n">jcharArray</span><span class="p">,</span> | |
<span class="n">jbyteArray</span><span class="p">,</span> | |
<span class="n">jshortArray</span><span class="p">,</span> | |
<span class="n">jintArray</span><span class="p">,</span> | |
<span class="n">jlongArray</span><span class="p">,</span> | |
<span class="n">jfloatArray</span><span class="p">,</span> | |
<span class="n">jdoubleArray</span><span class="p">,</span> | |
<span class="n">jobjectArray</span> | |
<span class="s">"$jniinput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadirectorout</span><span class="p">)</span> <span class="n">jboolean</span><span class="p">,</span> | |
<span class="n">jchar</span><span class="p">,</span> | |
<span class="n">jbyte</span><span class="p">,</span> | |
<span class="n">jshort</span><span class="p">,</span> | |
<span class="n">jint</span><span class="p">,</span> | |
<span class="n">jlong</span><span class="p">,</span> | |
<span class="n">jfloat</span><span class="p">,</span> | |
<span class="n">jdouble</span><span class="p">,</span> | |
<span class="n">jstring</span><span class="p">,</span> | |
<span class="n">jobject</span><span class="p">,</span> | |
<span class="n">jbooleanArray</span><span class="p">,</span> | |
<span class="n">jcharArray</span><span class="p">,</span> | |
<span class="n">jbyteArray</span><span class="p">,</span> | |
<span class="n">jshortArray</span><span class="p">,</span> | |
<span class="n">jintArray</span><span class="p">,</span> | |
<span class="n">jlongArray</span><span class="p">,</span> | |
<span class="n">jfloatArray</span><span class="p">,</span> | |
<span class="n">jdoubleArray</span><span class="p">,</span> | |
<span class="n">jobjectArray</span> | |
<span class="s">"$javacall"</span> | |
<span class="cm">/* Typecheck typemaps - The purpose of these is merely to issue a warning for overloaded C++ functions </span> | |
<span class="cm"> * that cannot be overloaded in Java as more than one C++ type maps to a single Java type */</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_BOOL</span><span class="p">)</span> <span class="cm">/* Java boolean */</span> | |
<span class="n">jboolean</span><span class="p">,</span> | |
<span class="kt">bool</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_CHAR</span><span class="p">)</span> <span class="cm">/* Java char */</span> | |
<span class="n">jchar</span><span class="p">,</span> | |
<span class="kt">char</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">char</span> <span class="o">&</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_INT8</span><span class="p">)</span> <span class="cm">/* Java byte */</span> | |
<span class="n">jbyte</span><span class="p">,</span> | |
<span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_INT16</span><span class="p">)</span> <span class="cm">/* Java short */</span> | |
<span class="n">jshort</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> | |
<span class="kt">short</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">short</span> <span class="o">&</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_INT32</span><span class="p">)</span> <span class="cm">/* Java int */</span> | |
<span class="n">jint</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> | |
<span class="kt">int</span><span class="p">,</span> | |
<span class="kt">long</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">int</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="o">&</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_INT64</span><span class="p">)</span> <span class="cm">/* Java long */</span> | |
<span class="n">jlong</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_INT128</span><span class="p">)</span> <span class="cm">/* Java BigInteger */</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_FLOAT</span><span class="p">)</span> <span class="cm">/* Java float */</span> | |
<span class="n">jfloat</span><span class="p">,</span> | |
<span class="kt">float</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">float</span> <span class="o">&</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_DOUBLE</span><span class="p">)</span> <span class="cm">/* Java double */</span> | |
<span class="n">jdouble</span><span class="p">,</span> | |
<span class="kt">double</span><span class="p">,</span> | |
<span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_STRING</span><span class="p">)</span> <span class="cm">/* Java String */</span> | |
<span class="n">jstring</span><span class="p">,</span> | |
<span class="kt">char</span> <span class="o">*</span><span class="p">,</span> | |
<span class="kt">char</span> <span class="o">*&</span><span class="p">,</span> | |
<span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> | |
<span class="kt">char</span> <span class="p">[]</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_BOOL_ARRAY</span><span class="p">)</span> <span class="cm">/* Java boolean[] */</span> | |
<span class="n">jbooleanArray</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_CHAR_ARRAY</span><span class="p">)</span> <span class="cm">/* Java char[] */</span> | |
<span class="n">jcharArray</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_INT8_ARRAY</span><span class="p">)</span> <span class="cm">/* Java byte[] */</span> | |
<span class="n">jbyteArray</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_INT16_ARRAY</span><span class="p">)</span> <span class="cm">/* Java short[] */</span> | |
<span class="n">jshortArray</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_INT32_ARRAY</span><span class="p">)</span> <span class="cm">/* Java int[] */</span> | |
<span class="n">jintArray</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_INT64_ARRAY</span><span class="p">)</span> <span class="cm">/* Java long[] */</span> | |
<span class="n">jlongArray</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_FLOAT_ARRAY</span><span class="p">)</span> <span class="cm">/* Java float[] */</span> | |
<span class="n">jfloatArray</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_DOUBLE_ARRAY</span><span class="p">)</span> <span class="cm">/* Java double[] */</span> | |
<span class="n">jdoubleArray</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_OBJECT_ARRAY</span><span class="p">)</span> <span class="cm">/* Java jobject[] */</span> | |
<span class="n">jobjectArray</span> | |
<span class="s">""</span> | |
<span class="nf">%typecheck</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_POINTER</span><span class="p">)</span> <span class="cm">/* Default */</span> | |
<span class="n">SWIGTYPE</span><span class="p">,</span> | |
<span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> | |
<span class="n">SWIGTYPE</span> <span class="o">&</span><span class="p">,</span> | |
<span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span><span class="o">&</span><span class="p">,</span> | |
<span class="n">SWIGTYPE</span> <span class="p">[],</span> | |
<span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> | |
<span class="s">""</span> | |
<span class="cm">/* Exception handling */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="k">throws</span><span class="p">)</span> <span class="kt">int</span><span class="p">,</span> | |
<span class="kt">long</span><span class="p">,</span> | |
<span class="kt">short</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">short</span> | |
<span class="o">%</span><span class="p">{</span> <span class="kt">char</span> <span class="n">error_msg</span><span class="p">[</span><span class="mi">256</span><span class="p">];</span> | |
<span class="n">sprintf</span><span class="p">(</span><span class="n">error_msg</span><span class="p">,</span> <span class="s">"C++ $1_type exception thrown, value: %d"</span><span class="p">,</span> <span class="n">$1</span><span class="p">);</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaRuntimeException</span><span class="p">,</span> <span class="n">error_msg</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="k">throws</span><span class="p">)</span> <span class="n">SWIGTYPE</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">&</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">[],</span> <span class="n">SWIGTYPE</span> <span class="p">[</span><span class="n">ANY</span><span class="p">]</span> | |
<span class="o">%</span><span class="p">{</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="n">$1</span><span class="p">;</span> | |
<span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaRuntimeException</span><span class="p">,</span> <span class="s">"C++ $1_type exception thrown"</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="k">throws</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">SWIG_JavaThrowException</span><span class="p">(</span><span class="n">jenv</span><span class="p">,</span> <span class="n">SWIG_JavaRuntimeException</span><span class="p">,</span> <span class="n">$1</span><span class="p">);</span> | |
<span class="k">return</span> <span class="n">$null</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="cm">/* Typemaps for code generation in proxy classes and Java type wrapper classes */</span> | |
<span class="cm">/* The javain typemap is used for converting function parameter types from the type </span> | |
<span class="cm"> * used in the proxy, module or type wrapper class to the type used in the JNI class. */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javain</span><span class="p">)</span> <span class="kt">bool</span><span class="p">,</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">short</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">int</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">float</span><span class="p">,</span> <span class="k">const</span> <span class="kt">float</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">double</span><span class="p">,</span> <span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> | |
<span class="s">"$javainput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javain</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*&</span><span class="p">,</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="s">"$javainput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javain</span><span class="p">)</span> <span class="n">jboolean</span><span class="p">,</span> | |
<span class="n">jchar</span><span class="p">,</span> | |
<span class="n">jbyte</span><span class="p">,</span> | |
<span class="n">jshort</span><span class="p">,</span> | |
<span class="n">jint</span><span class="p">,</span> | |
<span class="n">jlong</span><span class="p">,</span> | |
<span class="n">jfloat</span><span class="p">,</span> | |
<span class="n">jdouble</span><span class="p">,</span> | |
<span class="n">jstring</span><span class="p">,</span> | |
<span class="n">jobject</span><span class="p">,</span> | |
<span class="n">jbooleanArray</span><span class="p">,</span> | |
<span class="n">jcharArray</span><span class="p">,</span> | |
<span class="n">jbyteArray</span><span class="p">,</span> | |
<span class="n">jshortArray</span><span class="p">,</span> | |
<span class="n">jintArray</span><span class="p">,</span> | |
<span class="n">jlongArray</span><span class="p">,</span> | |
<span class="n">jfloatArray</span><span class="p">,</span> | |
<span class="n">jdoubleArray</span><span class="p">,</span> | |
<span class="n">jobjectArray</span> | |
<span class="s">"$javainput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javain</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="s">"$&javaclassname.getCPtr($javainput)"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javain</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">&</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">[]</span> <span class="s">"$javaclassname.getCPtr($javainput)"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javain</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">"$javaclassname.getCMemberPtr($javainput)"</span> | |
<span class="cm">/* The javaout typemap is used for converting function return types from the return type</span> | |
<span class="cm"> * used in the JNI class to the type returned by the proxy, module or type wrapper class. */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaout</span><span class="p">)</span> <span class="kt">bool</span><span class="p">,</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">signed</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">char</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">short</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">short</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">int</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">int</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span><span class="p">,</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">float</span><span class="p">,</span> <span class="k">const</span> <span class="kt">float</span> <span class="o">&</span><span class="p">,</span> | |
<span class="kt">double</span><span class="p">,</span> <span class="k">const</span> <span class="kt">double</span> <span class="o">&</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="n">$jnicall</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaout</span><span class="p">)</span> <span class="kt">char</span> <span class="o">*</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*&</span><span class="p">,</span> <span class="kt">char</span><span class="p">[</span><span class="n">ANY</span><span class="p">],</span> <span class="kt">char</span><span class="p">[]</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="n">$jnicall</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaout</span><span class="p">)</span> <span class="n">jboolean</span><span class="p">,</span> | |
<span class="n">jchar</span><span class="p">,</span> | |
<span class="n">jbyte</span><span class="p">,</span> | |
<span class="n">jshort</span><span class="p">,</span> | |
<span class="n">jint</span><span class="p">,</span> | |
<span class="n">jlong</span><span class="p">,</span> | |
<span class="n">jfloat</span><span class="p">,</span> | |
<span class="n">jdouble</span><span class="p">,</span> | |
<span class="n">jstring</span><span class="p">,</span> | |
<span class="n">jobject</span><span class="p">,</span> | |
<span class="n">jbooleanArray</span><span class="p">,</span> | |
<span class="n">jcharArray</span><span class="p">,</span> | |
<span class="n">jbyteArray</span><span class="p">,</span> | |
<span class="n">jshortArray</span><span class="p">,</span> | |
<span class="n">jintArray</span><span class="p">,</span> | |
<span class="n">jlongArray</span><span class="p">,</span> | |
<span class="n">jfloatArray</span><span class="p">,</span> | |
<span class="n">jdoubleArray</span><span class="p">,</span> | |
<span class="n">jobjectArray</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="n">$jnicall</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaout</span><span class="p">)</span> <span class="kt">void</span> <span class="p">{</span> | |
<span class="n">$jnicall</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaout</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="k">new</span> <span class="n">$&javaclassname</span><span class="p">(</span><span class="n">$jnicall</span><span class="p">,</span> <span class="nb">true</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaout</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="k">new</span> <span class="n">$javaclassname</span><span class="p">(</span><span class="n">$jnicall</span><span class="p">,</span> <span class="n">$owner</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaout</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">[]</span> <span class="p">{</span> | |
<span class="kt">long</span> <span class="n">cPtr</span> <span class="o">=</span> <span class="n">$jnicall</span><span class="p">;</span> | |
<span class="k">return</span> <span class="p">(</span><span class="n">cPtr</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="o">?</span> <span class="n">null</span> <span class="o">:</span> <span class="k">new</span> <span class="n">$javaclassname</span><span class="p">(</span><span class="n">cPtr</span><span class="p">,</span> <span class="n">$owner</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaout</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">String</span> <span class="n">cMemberPtr</span> <span class="o">=</span> <span class="n">$jnicall</span><span class="p">;</span> | |
<span class="k">return</span> <span class="p">(</span><span class="n">cMemberPtr</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="o">?</span> <span class="n">null</span> <span class="o">:</span> <span class="k">new</span> <span class="n">$javaclassname</span><span class="p">(</span><span class="n">cMemberPtr</span><span class="p">,</span> <span class="n">$owner</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="cm">/* Pointer reference typemaps */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span><span class="o">&</span> <span class="s">"jlong"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span><span class="o">&</span> <span class="s">"long"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span><span class="o">&</span> <span class="s">"$*javaclassname"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javain</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span><span class="o">&</span> <span class="s">"$*javaclassname.getCPtr($javainput)"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaout</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span><span class="o">&</span> <span class="p">{</span> | |
<span class="kt">long</span> <span class="n">cPtr</span> <span class="o">=</span> <span class="n">$jnicall</span><span class="p">;</span> | |
<span class="k">return</span> <span class="p">(</span><span class="n">cPtr</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="o">?</span> <span class="n">null</span> <span class="o">:</span> <span class="k">new</span> <span class="n">$*javaclassname</span><span class="p">(</span><span class="n">cPtr</span><span class="p">,</span> <span class="n">$owner</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span><span class="o">&</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> | |
<span class="o">%</span><span class="p">{</span> <span class="n">temp</span> <span class="o">=</span> <span class="o">*</span><span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$input</span><span class="p">;</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">temp</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">out</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span><span class="o">&</span> | |
<span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">(</span><span class="n">$1_ltype</span><span class="p">)</span><span class="o">&</span><span class="n">$result</span> <span class="o">=</span> <span class="o">*</span><span class="n">$1</span><span class="p">;</span> <span class="o">%</span><span class="p">}</span> | |
<span class="cm">/* Typemaps used for the generation of proxy and type wrapper class code */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javabase</span><span class="p">)</span> <span class="n">SWIGTYPE</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">&</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">[],</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">""</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaclassmodifiers</span><span class="p">)</span> <span class="n">SWIGTYPE</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">&</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">[],</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">"public class"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javacode</span><span class="p">)</span> <span class="n">SWIGTYPE</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">&</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">[],</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">""</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaimports</span><span class="p">)</span> <span class="n">SWIGTYPE</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">&</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">[],</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">""</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javainterfaces</span><span class="p">)</span> <span class="n">SWIGTYPE</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="o">&</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">[],</span> <span class="n">SWIGTYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="s">""</span> | |
<span class="cm">/* javabody typemaps */</span> | |
<span class="nf">%define</span> <span class="n">SWIG_JAVABODY_METHODS</span><span class="p">(</span><span class="n">PTRCTOR_VISIBILITY</span><span class="p">,</span> <span class="n">CPTR_VISIBILITY</span><span class="p">,</span> <span class="n">TYPE</span><span class="p">...)</span> <span class="n">SWIG_JAVABODY_PROXY</span><span class="p">(</span><span class="n">PTRCTOR_VISIBILITY</span><span class="p">,</span> <span class="n">CPTR_VISIBILITY</span><span class="p">,</span> <span class="n">TYPE</span><span class="p">)</span> <span class="nf">%enddef</span> <span class="c1">// legacy name</span> | |
<span class="nf">%define</span> <span class="n">SWIG_JAVABODY_PROXY</span><span class="p">(</span><span class="n">PTRCTOR_VISIBILITY</span><span class="p">,</span> <span class="n">CPTR_VISIBILITY</span><span class="p">,</span> <span class="n">TYPE</span><span class="p">...)</span> | |
<span class="c1">// Base proxy classes</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javabody</span><span class="p">)</span> <span class="n">TYPE</span> <span class="o">%</span><span class="p">{</span> | |
<span class="k">private</span> <span class="kt">long</span> <span class="n">swigCPtr</span><span class="p">;</span> | |
<span class="k">protected</span> <span class="n">boolean</span> <span class="n">swigCMemOwn</span><span class="p">;</span> | |
<span class="n">PTRCTOR_VISIBILITY</span> <span class="n">$javaclassname</span><span class="p">(</span><span class="kt">long</span> <span class="n">cPtr</span><span class="p">,</span> <span class="n">boolean</span> <span class="n">cMemoryOwn</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">swigCMemOwn</span> <span class="o">=</span> <span class="n">cMemoryOwn</span><span class="p">;</span> | |
<span class="n">swigCPtr</span> <span class="o">=</span> <span class="n">cPtr</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">CPTR_VISIBILITY</span> <span class="k">static</span> <span class="kt">long</span> <span class="n">getCPtr</span><span class="p">(</span><span class="n">$javaclassname</span> <span class="n">obj</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="p">(</span><span class="n">obj</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="n">obj</span><span class="p">.</span><span class="n">swigCPtr</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="o">%</span><span class="p">}</span> | |
<span class="c1">// Derived proxy classes</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javabody_derived</span><span class="p">)</span> <span class="n">TYPE</span> <span class="o">%</span><span class="p">{</span> | |
<span class="k">private</span> <span class="kt">long</span> <span class="n">swigCPtr</span><span class="p">;</span> | |
<span class="n">PTRCTOR_VISIBILITY</span> <span class="n">$javaclassname</span><span class="p">(</span><span class="kt">long</span> <span class="n">cPtr</span><span class="p">,</span> <span class="n">boolean</span> <span class="n">cMemoryOwn</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">super</span><span class="p">(</span><span class="n">$imclassname</span><span class="p">.</span><span class="n">$javaclazznameSWIGUpcast</span><span class="p">(</span><span class="n">cPtr</span><span class="p">),</span> <span class="n">cMemoryOwn</span><span class="p">);</span> | |
<span class="n">swigCPtr</span> <span class="o">=</span> <span class="n">cPtr</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">CPTR_VISIBILITY</span> <span class="k">static</span> <span class="kt">long</span> <span class="n">getCPtr</span><span class="p">(</span><span class="n">$javaclassname</span> <span class="n">obj</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="p">(</span><span class="n">obj</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="n">obj</span><span class="p">.</span><span class="n">swigCPtr</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="o">%</span><span class="p">}</span> | |
<span class="nf">%enddef</span> | |
<span class="nf">%define</span> <span class="n">SWIG_JAVABODY_TYPEWRAPPER</span><span class="p">(</span><span class="n">PTRCTOR_VISIBILITY</span><span class="p">,</span> <span class="n">DEFAULTCTOR_VISIBILITY</span><span class="p">,</span> <span class="n">CPTR_VISIBILITY</span><span class="p">,</span> <span class="n">TYPE</span><span class="p">...)</span> | |
<span class="c1">// Typewrapper classes</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javabody</span><span class="p">)</span> <span class="n">TYPE</span> <span class="o">*</span><span class="p">,</span> <span class="n">TYPE</span> <span class="o">&</span><span class="p">,</span> <span class="n">TYPE</span> <span class="p">[]</span> <span class="o">%</span><span class="p">{</span> | |
<span class="k">private</span> <span class="kt">long</span> <span class="n">swigCPtr</span><span class="p">;</span> | |
<span class="n">PTRCTOR_VISIBILITY</span> <span class="n">$javaclassname</span><span class="p">(</span><span class="kt">long</span> <span class="n">cPtr</span><span class="p">,</span> <span class="n">boolean</span> <span class="n">futureUse</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">swigCPtr</span> <span class="o">=</span> <span class="n">cPtr</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">DEFAULTCTOR_VISIBILITY</span> <span class="n">$javaclassname</span><span class="p">()</span> <span class="p">{</span> | |
<span class="n">swigCPtr</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">CPTR_VISIBILITY</span> <span class="k">static</span> <span class="kt">long</span> <span class="n">getCPtr</span><span class="p">(</span><span class="n">$javaclassname</span> <span class="n">obj</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="p">(</span><span class="n">obj</span> <span class="o">==</span> <span class="n">null</span><span class="p">)</span> <span class="o">?</span> <span class="mi">0</span> <span class="o">:</span> <span class="n">obj</span><span class="p">.</span><span class="n">swigCPtr</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javabody</span><span class="p">)</span> <span class="n">TYPE</span> <span class="p">(</span><span class="n">CLASS</span><span class="o">::*</span><span class="p">)</span> <span class="o">%</span><span class="p">{</span> | |
<span class="k">private</span> <span class="n">String</span> <span class="n">swigCMemberPtr</span><span class="p">;</span> | |
<span class="n">PTRCTOR_VISIBILITY</span> <span class="n">$javaclassname</span><span class="p">(</span><span class="n">String</span> <span class="n">cMemberPtr</span><span class="p">,</span> <span class="n">boolean</span> <span class="n">futureUse</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">swigCMemberPtr</span> <span class="o">=</span> <span class="n">cMemberPtr</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">DEFAULTCTOR_VISIBILITY</span> <span class="n">$javaclassname</span><span class="p">()</span> <span class="p">{</span> | |
<span class="n">swigCMemberPtr</span> <span class="o">=</span> <span class="n">null</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">CPTR_VISIBILITY</span> <span class="k">static</span> <span class="n">String</span> <span class="n">getCMemberPtr</span><span class="p">(</span><span class="n">$javaclassname</span> <span class="n">obj</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="n">obj</span><span class="p">.</span><span class="n">swigCMemberPtr</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="o">%</span><span class="p">}</span> | |
<span class="nf">%enddef</span> | |
<span class="cm">/* Set the default javabody typemaps to use protected visibility.</span> | |
<span class="cm"> Use the macros to change to public if using multiple modules. */</span> | |
<span class="n">SWIG_JAVABODY_PROXY</span><span class="p">(</span><span class="k">protected</span><span class="p">,</span> <span class="k">protected</span><span class="p">,</span> <span class="n">SWIGTYPE</span><span class="p">)</span> | |
<span class="n">SWIG_JAVABODY_TYPEWRAPPER</span><span class="p">(</span><span class="k">protected</span><span class="p">,</span> <span class="k">protected</span><span class="p">,</span> <span class="k">protected</span><span class="p">,</span> <span class="n">SWIGTYPE</span><span class="p">)</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javafinalize</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">%</span><span class="p">{</span> | |
<span class="k">protected</span> <span class="kt">void</span> <span class="n">finalize</span><span class="p">()</span> <span class="p">{</span> | |
<span class="k">delete</span><span class="p">();</span> | |
<span class="p">}</span> | |
<span class="o">%</span><span class="p">}</span> | |
<span class="cm">/*</span> | |
<span class="cm"> * Java constructor typemaps:</span> | |
<span class="cm"> *</span> | |
<span class="cm"> * The javaconstruct typemap is inserted when a proxy class's constructor is generated.</span> | |
<span class="cm"> * This typemap allows control over what code is executed in the constructor as</span> | |
<span class="cm"> * well as specifying who owns the underlying C/C++ object. Normally, Java has</span> | |
<span class="cm"> * ownership and the underlying C/C++ object is deallocated when the Java object</span> | |
<span class="cm"> * is finalized (swigCMemOwn is true.) If swigCMemOwn is false, C/C++ is</span> | |
<span class="cm"> * ultimately responsible for deallocating the underlying object's memory.</span> | |
<span class="cm"> *</span> | |
<span class="cm"> * The SWIG_PROXY_CONSTRUCTOR macro defines the javaconstruct typemap for a proxy</span> | |
<span class="cm"> * class for a particular TYPENAME. OWNERSHIP is passed as the value of</span> | |
<span class="cm"> * swigCMemOwn to the pointer constructor method. WEAKREF determines which kind</span> | |
<span class="cm"> * of Java object reference will be used by the C++ director class (WeakGlobalRef</span> | |
<span class="cm"> * vs. GlobalRef.)</span> | |
<span class="cm"> *</span> | |
<span class="cm"> * The SWIG_DIRECTOR_OWNED macro sets the ownership of director-based proxy</span> | |
<span class="cm"> * classes and the weak reference flag to false, meaning that the underlying C++</span> | |
<span class="cm"> * object will be reclaimed by C++.</span> | |
<span class="cm"> */</span> | |
<span class="nf">%define</span> <span class="n">SWIG_PROXY_CONSTRUCTOR</span><span class="p">(</span><span class="n">OWNERSHIP</span><span class="p">,</span> <span class="n">WEAKREF</span><span class="p">,</span> <span class="n">TYPENAME</span><span class="p">...)</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javaconstruct</span><span class="p">,</span><span class="n">directorconnect</span><span class="o">=</span><span class="s">"</span><span class="se">\n</span><span class="s"> $imclassname.$javaclazznamedirector_connect(this, swigCPtr, swigCMemOwn, WEAKREF);"</span><span class="p">)</span> <span class="n">TYPENAME</span> <span class="p">{</span> | |
<span class="k">this</span><span class="p">(</span><span class="n">$imcall</span><span class="p">,</span> <span class="n">OWNERSHIP</span><span class="p">);</span><span class="n">$directorconnect</span> | |
<span class="p">}</span> | |
<span class="nf">%enddef</span> | |
<span class="nf">%define</span> <span class="n">SWIG_DIRECTOR_OWNED</span><span class="p">(</span><span class="n">TYPENAME</span><span class="p">...)</span> | |
<span class="n">SWIG_PROXY_CONSTRUCTOR</span><span class="p">(</span><span class="nb">true</span><span class="p">,</span> <span class="nb">false</span><span class="p">,</span> <span class="n">TYPENAME</span><span class="p">)</span> | |
<span class="nf">%enddef</span> | |
<span class="c1">// Set the default for SWIGTYPE: Java owns the C/C++ object.</span> | |
<span class="n">SWIG_PROXY_CONSTRUCTOR</span><span class="p">(</span><span class="nb">true</span><span class="p">,</span> <span class="nb">true</span><span class="p">,</span> <span class="n">SWIGTYPE</span><span class="p">)</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadestruct</span><span class="p">,</span> <span class="n">methodname</span><span class="o">=</span><span class="s">"delete"</span><span class="p">,</span> <span class="n">methodmodifiers</span><span class="o">=</span><span class="s">"public synchronized"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">{</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">swigCPtr</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">swigCMemOwn</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">swigCMemOwn</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span> | |
<span class="n">$jnicall</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">swigCPtr</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javadestruct_derived</span><span class="p">,</span> <span class="n">methodname</span><span class="o">=</span><span class="s">"delete"</span><span class="p">,</span> <span class="n">methodmodifiers</span><span class="o">=</span><span class="s">"public synchronized"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="p">{</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">swigCPtr</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">swigCMemOwn</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">swigCMemOwn</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span> | |
<span class="n">$jnicall</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">swigCPtr</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="n">super</span><span class="p">.</span><span class="k">delete</span><span class="p">();</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directordisconnect</span><span class="p">,</span> <span class="n">methodname</span><span class="o">=</span><span class="s">"swigDirectorDisconnect"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">%</span><span class="p">{</span> | |
<span class="k">protected</span> <span class="kt">void</span> <span class="n">$methodname</span><span class="p">()</span> <span class="p">{</span> | |
<span class="n">swigCMemOwn</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span> | |
<span class="n">$jnicall</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorowner_release</span><span class="p">,</span> <span class="n">methodname</span><span class="o">=</span><span class="s">"swigReleaseOwnership"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">%</span><span class="p">{</span> | |
<span class="k">public</span> <span class="kt">void</span> <span class="n">$methodname</span><span class="p">()</span> <span class="p">{</span> | |
<span class="n">swigCMemOwn</span> <span class="o">=</span> <span class="nb">false</span><span class="p">;</span> | |
<span class="n">$jnicall</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="o">%</span><span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorowner_take</span><span class="p">,</span> <span class="n">methodname</span><span class="o">=</span><span class="s">"swigTakeOwnership"</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">%</span><span class="p">{</span> | |
<span class="k">public</span> <span class="kt">void</span> <span class="n">$methodname</span><span class="p">()</span> <span class="p">{</span> | |
<span class="n">swigCMemOwn</span> <span class="o">=</span> <span class="nb">true</span><span class="p">;</span> | |
<span class="n">$jnicall</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="o">%</span><span class="p">}</span> | |
<span class="cm">/* Java specific directives */</span> | |
<span class="cp">#define %javaconst(flag) %feature("java:const","flag")</span> | |
<span class="cp">#define %javaconstvalue(value) %feature("java:constvalue",value)</span> | |
<span class="cp">#define %javaenum(wrapapproach) %feature("java:enum","wrapapproach")</span> | |
<span class="cp">#define %javamethodmodifiers %feature("java:methodmodifiers")</span> | |
<span class="cp">#define %javaexception(exceptionclasses) %feature("except",throws=exceptionclasses)</span> | |
<span class="cp">#define %nojavaexception %feature("except","0",throws="")</span> | |
<span class="cp">#define %clearjavaexception %feature("except","",throws="")</span> | |
<span class="nf">%pragma</span><span class="p">(</span><span class="n">java</span><span class="p">)</span> <span class="n">jniclassclassmodifiers</span><span class="o">=</span><span class="s">"public class"</span> | |
<span class="nf">%pragma</span><span class="p">(</span><span class="n">java</span><span class="p">)</span> <span class="n">moduleclassmodifiers</span><span class="o">=</span><span class="s">"public class"</span> | |
<span class="cm">/* Some ANSI C typemaps */</span> | |
<span class="nf">%apply</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="p">{</span> <span class="kt">size_t</span> <span class="p">};</span> | |
<span class="nf">%apply</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&</span> <span class="p">{</span> <span class="k">const</span> <span class="kt">size_t</span> <span class="o">&</span> <span class="p">};</span> | |
<span class="cm">/* Array reference typemaps */</span> | |
<span class="nf">%apply</span> <span class="n">SWIGTYPE</span> <span class="o">&</span> <span class="p">{</span> <span class="n">SWIGTYPE</span> <span class="p">((</span><span class="o">&</span><span class="p">)[</span><span class="n">ANY</span><span class="p">])</span> <span class="p">}</span> | |
<span class="cm">/* const pointers */</span> | |
<span class="nf">%apply</span> <span class="n">SWIGTYPE</span> <span class="o">*</span> <span class="p">{</span> <span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span> <span class="p">}</span> | |
<span class="cm">/* String & length */</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jni</span><span class="p">)</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="s">"jbyteArray"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jtype</span><span class="p">)</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="s">"byte[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">jstype</span><span class="p">)</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="s">"byte[]"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">javain</span><span class="p">)</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="s">"$javainput"</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">freearg</span><span class="p">)</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="s">""</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$input</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="p">)</span> <span class="n">JCALL2</span><span class="p">(</span><span class="n">GetByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="n">$2</span> <span class="o">=</span> <span class="p">(</span><span class="kt">size_t</span><span class="p">)</span> <span class="n">JCALL1</span><span class="p">(</span><span class="n">GetArrayLength</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">);</span> | |
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span> | |
<span class="n">$1</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="n">$2</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">argout</span><span class="p">)</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">if</span> <span class="p">(</span><span class="n">$input</span><span class="p">)</span> <span class="n">JCALL3</span><span class="p">(</span><span class="n">ReleaseByteArrayElements</span><span class="p">,</span> <span class="n">jenv</span><span class="p">,</span> <span class="n">$input</span><span class="p">,</span> <span class="p">(</span><span class="n">jbyte</span> <span class="o">*</span><span class="p">)</span><span class="n">$1</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorin</span><span class="p">,</span> <span class="n">descriptor</span><span class="o">=</span><span class="s">"[B"</span><span class="p">)</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="p">{</span> | |
<span class="n">jbyteArray</span> <span class="n">jb</span> <span class="o">=</span> <span class="p">(</span><span class="n">jenv</span><span class="p">)</span><span class="o">-></span><span class="n">NewByteArray</span><span class="p">(</span><span class="n">$2</span><span class="p">);</span> | |
<span class="p">(</span><span class="n">jenv</span><span class="p">)</span><span class="o">-></span><span class="n">SetByteArrayRegion</span><span class="p">(</span><span class="n">jb</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">$2</span><span class="p">,</span> <span class="p">(</span><span class="n">jbyte</span> <span class="o">*</span><span class="p">)</span><span class="n">$1</span><span class="p">);</span> | |
<span class="n">$input</span> <span class="o">=</span> <span class="n">jb</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap</span><span class="p">(</span><span class="n">directorargout</span><span class="p">)</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> | |
<span class="o">%</span><span class="p">{(</span><span class="n">jenv</span><span class="p">)</span><span class="o">-></span><span class="n">GetByteArrayRegion</span><span class="p">(</span><span class="n">$input</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">$2</span><span class="p">,</span> <span class="p">(</span><span class="n">jbyte</span> <span class="o">*</span><span class="p">)</span><span class="n">$1</span><span class="p">);</span> <span class="o">%</span><span class="p">}</span> | |
<span class="nf">%apply</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">size_t</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="p">{</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="n">STRING</span><span class="p">,</span> <span class="kt">int</span> <span class="n">LENGTH</span><span class="p">)</span> <span class="p">}</span> | |
<span class="cm">/* java keywords */</span> | |
<span class="nf">%include</span> <span class="o"><</span><span class="n">javakw</span><span class="p">.</span><span class="n">swg</span><span class="o">></span> | |
<span class="c1">// Default enum handling</span> | |
<span class="nf">%include</span> <span class="o"><</span><span class="n">enumtypesafe</span><span class="p">.</span><span class="n">swg</span><span class="o">></span> | |
</pre></div> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" | |
"http://www.w3.org/TR/html4/strict.dtd"> | |
<html> | |
<head> | |
<title></title> | |
<meta http-equiv="content-type" content="text/html; charset=latin1"> | |
<style type="text/css"> | |
td.linenos { background-color: #f0f0f0; padding-right: 10px; } | |
span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; } | |
pre { line-height: 125%; } | |
body .hll { background-color: #ffffcc } | |
body { background: #f8f8f8; } | |
body .c { color: #408080; font-style: italic } /* Comment */ | |
body .err { border: 1px solid #FF0000 } /* Error */ | |
body .k { color: #008000; font-weight: bold } /* Keyword */ | |
body .o { color: #666666 } /* Operator */ | |
body .cm { color: #408080; font-style: italic } /* Comment.Multiline */ | |
body .cp { color: #BC7A00 } /* Comment.Preproc */ | |
body .c1 { color: #408080; font-style: italic } /* Comment.Single */ | |
body .cs { color: #408080; font-style: italic } /* Comment.Special */ | |
body .gd { color: #A00000 } /* Generic.Deleted */ | |
body .ge { font-style: italic } /* Generic.Emph */ | |
body .gr { color: #FF0000 } /* Generic.Error */ | |
body .gh { color: #000080; font-weight: bold } /* Generic.Heading */ | |
body .gi { color: #00A000 } /* Generic.Inserted */ | |
body .go { color: #888888 } /* Generic.Output */ | |
body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ | |
body .gs { font-weight: bold } /* Generic.Strong */ | |
body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ | |
body .gt { color: #0044DD } /* Generic.Traceback */ | |
body .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ | |
body .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ | |
body .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ | |
body .kp { color: #008000 } /* Keyword.Pseudo */ | |
body .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ | |
body .kt { color: #B00040 } /* Keyword.Type */ | |
body .m { color: #666666 } /* Literal.Number */ | |
body .s { color: #BA2121 } /* Literal.String */ | |
body .na { color: #7D9029 } /* Name.Attribute */ | |
body .nb { color: #008000 } /* Name.Builtin */ | |
body .nc { color: #0000FF; font-weight: bold } /* Name.Class */ | |
body .no { color: #880000 } /* Name.Constant */ | |
body .nd { color: #AA22FF } /* Name.Decorator */ | |
body .ni { color: #999999; font-weight: bold } /* Name.Entity */ | |
body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ | |
body .nf { color: #0000FF } /* Name.Function */ | |
body .nl { color: #A0A000 } /* Name.Label */ | |
body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ | |
body .nt { color: #008000; font-weight: bold } /* Name.Tag */ | |
body .nv { color: #19177C } /* Name.Variable */ | |
body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ | |
body .w { color: #bbbbbb } /* Text.Whitespace */ | |
body .mf { color: #666666 } /* Literal.Number.Float */ | |
body .mh { color: #666666 } /* Literal.Number.Hex */ | |
body .mi { color: #666666 } /* Literal.Number.Integer */ | |
body .mo { color: #666666 } /* Literal.Number.Oct */ | |
body .sb { color: #BA2121 } /* Literal.String.Backtick */ | |
body .sc { color: #BA2121 } /* Literal.String.Char */ | |
body .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ | |
body .s2 { color: #BA2121 } /* Literal.String.Double */ | |
body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ | |
body .sh { color: #BA2121 } /* Literal.String.Heredoc */ | |
body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ | |
body .sx { color: #008000 } /* Literal.String.Other */ | |
body .sr { color: #BB6688 } /* Literal.String.Regex */ | |
body .s1 { color: #BA2121 } /* Literal.String.Single */ | |
body .ss { color: #19177C } /* Literal.String.Symbol */ | |
body .bp { color: #008000 } /* Name.Builtin.Pseudo */ | |
body .vc { color: #19177C } /* Name.Variable.Class */ | |
body .vg { color: #19177C } /* Name.Variable.Global */ | |
body .vi { color: #19177C } /* Name.Variable.Instance */ | |
body .il { color: #666666 } /* Literal.Number.Integer.Long */ | |
</style> | |
</head> | |
<body> | |
<h2></h2> | |
<div class="highlight"><pre><span class="c1">//</span> | |
<span class="c1">// std::vector</span> | |
<span class="c1">//</span> | |
<span class="nf">%include</span> <span class="o"><</span><span class="n">std_container</span><span class="p">.</span><span class="n">i</span><span class="o">></span> | |
<span class="c1">// Vector</span> | |
<span class="nf">%define</span> <span class="nf">%std_vector_methods</span><span class="p">(</span><span class="n">vector</span><span class="p">...)</span> | |
<span class="nf">%std_sequence_methods</span><span class="p">(</span><span class="n">vector</span><span class="p">)</span> | |
<span class="kt">void</span> <span class="n">reserve</span><span class="p">(</span><span class="n">size_type</span> <span class="n">n</span><span class="p">);</span> | |
<span class="n">size_type</span> <span class="n">capacity</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> | |
<span class="nf">%enddef</span> | |
<span class="nf">%define</span> <span class="nf">%std_vector_methods_val</span><span class="p">(</span><span class="n">vector</span><span class="p">...)</span> | |
<span class="nf">%std_sequence_methods_val</span><span class="p">(</span><span class="n">vector</span><span class="p">)</span> | |
<span class="kt">void</span> <span class="n">reserve</span><span class="p">(</span><span class="n">size_type</span> <span class="n">n</span><span class="p">);</span> | |
<span class="n">size_type</span> <span class="n">capacity</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> | |
<span class="nf">%enddef</span> | |
<span class="c1">// ------------------------------------------------------------------------</span> | |
<span class="c1">// std::vector</span> | |
<span class="c1">// </span> | |
<span class="c1">// The aim of all that follows would be to integrate std::vector with </span> | |
<span class="c1">// as much as possible, namely, to allow the user to pass and </span> | |
<span class="c1">// be returned tuples or lists.</span> | |
<span class="c1">// const declarations are used to guess the intent of the function being</span> | |
<span class="c1">// exported; therefore, the following rationale is applied:</span> | |
<span class="c1">// </span> | |
<span class="c1">// -- f(std::vector<T>), f(const std::vector<T>&):</span> | |
<span class="c1">// the parameter being read-only, either a sequence or a</span> | |
<span class="c1">// previously wrapped std::vector<T> can be passed.</span> | |
<span class="c1">// -- f(std::vector<T>&), f(std::vector<T>*):</span> | |
<span class="c1">// the parameter may be modified; therefore, only a wrapped std::vector</span> | |
<span class="c1">// can be passed.</span> | |
<span class="c1">// -- std::vector<T> f(), const std::vector<T>& f():</span> | |
<span class="c1">// the vector is returned by copy; therefore, a sequence of T:s </span> | |
<span class="c1">// is returned which is most easily used in other functions</span> | |
<span class="c1">// -- std::vector<T>& f(), std::vector<T>* f():</span> | |
<span class="c1">// the vector is returned by reference; therefore, a wrapped std::vector</span> | |
<span class="c1">// is returned</span> | |
<span class="c1">// -- const std::vector<T>* f(), f(const std::vector<T>*):</span> | |
<span class="c1">// for consistency, they expect and return a plain vector pointer.</span> | |
<span class="c1">// ------------------------------------------------------------------------</span> | |
<span class="o">%</span><span class="p">{</span> | |
<span class="cp">#include <vector></span> | |
<span class="o">%</span><span class="p">}</span> | |
<span class="c1">// exported classes</span> | |
<span class="k">namespace</span> <span class="n">std</span> <span class="p">{</span> | |
<span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">_Tp</span><span class="p">,</span> <span class="k">class</span> <span class="nc">_Alloc</span> <span class="o">=</span> <span class="n">allocator</span><span class="o"><</span> <span class="n">_Tp</span> <span class="o">></span> <span class="o">></span> | |
<span class="k">class</span> <span class="nc">vector</span> <span class="p">{</span> | |
<span class="nl">public:</span> | |
<span class="k">typedef</span> <span class="kt">size_t</span> <span class="n">size_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="kt">ptrdiff_t</span> <span class="n">difference_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">_Tp</span> <span class="n">value_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span><span class="o">*</span> <span class="n">pointer</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="k">const</span> <span class="n">value_type</span><span class="o">*</span> <span class="n">const_pointer</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">_Tp</span><span class="o">&</span> <span class="n">reference</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="k">const</span> <span class="n">_Tp</span><span class="o">&</span> <span class="n">const_reference</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">_Alloc</span> <span class="n">allocator_type</span><span class="p">;</span> | |
<span class="nf">%traits_swigtype</span><span class="p">(</span><span class="n">_Tp</span><span class="p">);</span> | |
<span class="nf">%traits_enum</span><span class="p">(</span><span class="n">_Tp</span><span class="p">);</span> | |
<span class="nf">%fragment</span><span class="p">(</span><span class="n">SWIG_Traits_frag</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">),</span> <span class="s">"header"</span><span class="p">,</span> | |
<span class="n">fragment</span><span class="o">=</span><span class="n">SWIG_Traits_frag</span><span class="p">(</span><span class="n">_Tp</span><span class="p">),</span> | |
<span class="n">fragment</span><span class="o">=</span><span class="s">"StdVectorTraits"</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">namespace</span> <span class="n">swig</span> <span class="p">{</span> | |
<span class="k">template</span> <span class="o"><></span> <span class="k">struct</span> <span class="n">traits</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span> <span class="o">></span> <span class="p">{</span> | |
<span class="k">typedef</span> <span class="n">pointer_category</span> <span class="n">category</span><span class="p">;</span> | |
<span class="k">static</span> <span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="nf">type_name</span><span class="p">()</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="s">"std::vector<"</span> <span class="cp">#_Tp</span> <span class="s">","</span> <span class="cp">#_Alloc</span> <span class="s">" >"</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">};</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap_traits_ptr</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_VECTOR</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">);</span> | |
<span class="cp">#ifdef %swig_vector_methods</span> | |
<span class="c1">// Add swig/language extra methods</span> | |
<span class="nf">%swig_vector_methods</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">);</span> | |
<span class="cp">#endif</span> | |
<span class="nf">%std_vector_methods</span><span class="p">(</span><span class="n">vector</span><span class="p">);</span> | |
<span class="p">};</span> | |
<span class="c1">// ***</span> | |
<span class="c1">// This specialization should disappear or get simplified when</span> | |
<span class="c1">// a 'const SWIGTYPE*&' can be defined</span> | |
<span class="c1">// ***</span> | |
<span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">_Tp</span><span class="p">,</span> <span class="k">class</span> <span class="nc">_Alloc</span> <span class="o">></span> | |
<span class="k">class</span> <span class="nc">vector</span><span class="o"><</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span> <span class="p">{</span> | |
<span class="nl">public:</span> | |
<span class="k">typedef</span> <span class="kt">size_t</span> <span class="n">size_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="kt">ptrdiff_t</span> <span class="n">difference_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">_Tp</span><span class="o">*</span> <span class="n">value_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span><span class="o">*</span> <span class="n">pointer</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="k">const</span> <span class="n">value_type</span><span class="o">*</span> <span class="n">const_pointer</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span> <span class="n">reference</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span> <span class="n">const_reference</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">_Alloc</span> <span class="n">allocator_type</span><span class="p">;</span> | |
<span class="nf">%traits_swigtype</span><span class="p">(</span><span class="n">_Tp</span><span class="p">);</span> | |
<span class="nf">%fragment</span><span class="p">(</span><span class="n">SWIG_Traits_frag</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">),</span> <span class="s">"header"</span><span class="p">,</span> | |
<span class="n">fragment</span><span class="o">=</span><span class="n">SWIG_Traits_frag</span><span class="p">(</span><span class="n">_Tp</span><span class="p">),</span> | |
<span class="n">fragment</span><span class="o">=</span><span class="s">"StdVectorTraits"</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">namespace</span> <span class="n">swig</span> <span class="p">{</span> | |
<span class="k">template</span> <span class="o"><></span> <span class="k">struct</span> <span class="n">traits</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span> <span class="o">></span> <span class="p">{</span> | |
<span class="k">typedef</span> <span class="n">value_category</span> <span class="n">category</span><span class="p">;</span> | |
<span class="k">static</span> <span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="nf">type_name</span><span class="p">()</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="s">"std::vector<"</span> <span class="cp">#_Tp</span> <span class="s">" *,"</span> <span class="cp">#_Alloc</span> <span class="s">" >"</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">};</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap_traits_ptr</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_VECTOR</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">);</span> | |
<span class="cp">#ifdef %swig_vector_methods_val</span> | |
<span class="c1">// Add swig/language extra methods</span> | |
<span class="nf">%swig_vector_methods_val</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">);</span> | |
<span class="cp">#endif</span> | |
<span class="nf">%std_vector_methods_val</span><span class="p">(</span><span class="n">vector</span><span class="p">);</span> | |
<span class="p">};</span> | |
<span class="c1">// ***</span> | |
<span class="c1">// const pointer specialization</span> | |
<span class="c1">// ***</span> | |
<span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">_Tp</span><span class="p">,</span> <span class="k">class</span> <span class="nc">_Alloc</span> <span class="o">></span> | |
<span class="k">class</span> <span class="nc">vector</span><span class="o"><</span><span class="n">_Tp</span> <span class="k">const</span> <span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span> <span class="p">{</span> | |
<span class="nl">public:</span> | |
<span class="k">typedef</span> <span class="kt">size_t</span> <span class="n">size_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="kt">ptrdiff_t</span> <span class="n">difference_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">_Tp</span> <span class="k">const</span> <span class="o">*</span> <span class="n">value_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span><span class="o">*</span> <span class="n">pointer</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="k">const</span> <span class="n">value_type</span><span class="o">*</span> <span class="n">const_pointer</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span> <span class="n">reference</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span> <span class="n">const_reference</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">_Alloc</span> <span class="n">allocator_type</span><span class="p">;</span> | |
<span class="nf">%traits_swigtype</span><span class="p">(</span><span class="n">_Tp</span><span class="p">);</span> | |
<span class="nf">%fragment</span><span class="p">(</span><span class="n">SWIG_Traits_frag</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span> <span class="k">const</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">),</span> <span class="s">"header"</span><span class="p">,</span> | |
<span class="n">fragment</span><span class="o">=</span><span class="n">SWIG_Traits_frag</span><span class="p">(</span><span class="n">_Tp</span><span class="p">),</span> | |
<span class="n">fragment</span><span class="o">=</span><span class="s">"StdVectorTraits"</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">namespace</span> <span class="n">swig</span> <span class="p">{</span> | |
<span class="k">template</span> <span class="o"><></span> <span class="k">struct</span> <span class="n">traits</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span> <span class="k">const</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span> <span class="o">></span> <span class="p">{</span> | |
<span class="k">typedef</span> <span class="n">value_category</span> <span class="n">category</span><span class="p">;</span> | |
<span class="k">static</span> <span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="nf">type_name</span><span class="p">()</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="s">"std::vector<"</span> <span class="cp">#_Tp</span> <span class="s">" const*,"</span> <span class="cp">#_Alloc</span> <span class="s">" >"</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">};</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap_traits_ptr</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_VECTOR</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span> <span class="k">const</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">);</span> | |
<span class="cp">#ifdef %swig_vector_methods_val</span> | |
<span class="c1">// Add swig/language extra methods</span> | |
<span class="nf">%swig_vector_methods_val</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="n">_Tp</span> <span class="k">const</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">);</span> | |
<span class="cp">#endif</span> | |
<span class="nf">%std_vector_methods_val</span><span class="p">(</span><span class="n">vector</span><span class="p">);</span> | |
<span class="p">};</span> | |
<span class="c1">// ***</span> | |
<span class="c1">// bool specialization</span> | |
<span class="c1">// ***</span> | |
<span class="k">template</span><span class="o"><</span><span class="k">class</span> <span class="nc">_Alloc</span> <span class="o">></span> | |
<span class="k">class</span> <span class="nc">vector</span><span class="o"><</span><span class="kt">bool</span><span class="p">,</span><span class="n">_Alloc</span> <span class="o">></span> <span class="p">{</span> | |
<span class="nl">public:</span> | |
<span class="k">typedef</span> <span class="kt">size_t</span> <span class="n">size_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="kt">ptrdiff_t</span> <span class="n">difference_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="kt">bool</span> <span class="n">value_type</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span><span class="o">*</span> <span class="n">pointer</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="k">const</span> <span class="n">value_type</span><span class="o">*</span> <span class="n">const_pointer</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span> <span class="n">reference</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">value_type</span> <span class="n">const_reference</span><span class="p">;</span> | |
<span class="k">typedef</span> <span class="n">_Alloc</span> <span class="n">allocator_type</span><span class="p">;</span> | |
<span class="nf">%traits_swigtype</span><span class="p">(</span><span class="kt">bool</span><span class="p">);</span> | |
<span class="nf">%fragment</span><span class="p">(</span><span class="n">SWIG_Traits_frag</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">bool</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">),</span> <span class="s">"header"</span><span class="p">,</span> | |
<span class="n">fragment</span><span class="o">=</span><span class="n">SWIG_Traits_frag</span><span class="p">(</span><span class="kt">bool</span><span class="p">),</span> | |
<span class="n">fragment</span><span class="o">=</span><span class="s">"StdVectorTraits"</span><span class="p">)</span> <span class="p">{</span> | |
<span class="k">namespace</span> <span class="n">swig</span> <span class="p">{</span> | |
<span class="k">template</span> <span class="o"><></span> <span class="k">struct</span> <span class="n">traits</span><span class="o"><</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">bool</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span> <span class="o">></span> <span class="p">{</span> | |
<span class="k">typedef</span> <span class="n">value_category</span> <span class="n">category</span><span class="p">;</span> | |
<span class="k">static</span> <span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="nf">type_name</span><span class="p">()</span> <span class="p">{</span> | |
<span class="k">return</span> <span class="s">"std::vector<bool, _Alloc >"</span><span class="p">;</span> | |
<span class="p">}</span> | |
<span class="p">};</span> | |
<span class="p">}</span> | |
<span class="p">}</span> | |
<span class="nf">%typemap_traits_ptr</span><span class="p">(</span><span class="n">SWIG_TYPECHECK_VECTOR</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">bool</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">);</span> | |
<span class="cp">#ifdef %swig_vector_methods_val</span> | |
<span class="c1">// Add swig/language extra methods</span> | |
<span class="nf">%swig_vector_methods_val</span><span class="p">(</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o"><</span><span class="kt">bool</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">></span><span class="p">);</span> | |
<span class="cp">#endif</span> | |
<span class="nf">%std_vector_methods_val</span><span class="p">(</span><span class="n">vector</span><span class="p">);</span> | |
<span class="cp">#if defined(SWIG_STD_MODERN_STL) && !defined(SWIG_STD_NOMODERN_STL) </span> | |
<span class="kt">void</span> <span class="nf">flip</span><span class="p">();</span> | |
<span class="cp">#endif</span> | |
<span class="p">};</span> | |
<span class="p">}</span> | |
</pre></div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment