Skip to content

Instantly share code, notes, and snippets.

@wsfulton
Last active December 13, 2015 19:48
Show Gist options
  • Save wsfulton/4965046 to your computer and use it in GitHub Desktop.
Save wsfulton/4965046 to your computer and use it in GitHub Desktop.
SWIG Pygments syntax examples
<!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">&lt;</span><span class="n">javahead</span><span class="p">.</span><span class="n">swg</span><span class="o">&gt;</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">&quot;SWIG_PackData&quot;</span><span class="p">,</span> <span class="s">&quot;header&quot;</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">&quot;0123456789abcdef&quot;</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">&amp;</span> <span class="mh">0xf0</span><span class="p">)</span> <span class="o">&gt;&gt;</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">&amp;</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">&quot;SWIG_UnPackData&quot;</span><span class="p">,</span> <span class="s">&quot;header&quot;</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">&gt;=</span> <span class="sc">&#39;0&#39;</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">d</span> <span class="o">&lt;=</span> <span class="sc">&#39;9&#39;</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">&#39;0&#39;</span><span class="p">)</span> <span class="o">&lt;&lt;</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">&gt;=</span> <span class="sc">&#39;a&#39;</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">d</span> <span class="o">&lt;=</span> <span class="sc">&#39;f&#39;</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">&#39;a&#39;</span><span class="o">-</span><span class="mi">10</span><span class="p">))</span> <span class="o">&lt;&lt;</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">&gt;=</span> <span class="sc">&#39;0&#39;</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">d</span> <span class="o">&lt;=</span> <span class="sc">&#39;9&#39;</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">&#39;0&#39;</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">&gt;=</span> <span class="sc">&#39;a&#39;</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">d</span> <span class="o">&lt;=</span> <span class="sc">&#39;f&#39;</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">&#39;a&#39;</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">&amp;</span> <span class="s">&quot;jboolean&quot;</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">&amp;</span> <span class="s">&quot;jchar&quot;</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">&amp;</span> <span class="s">&quot;jbyte&quot;</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">&amp;</span> <span class="s">&quot;jshort&quot;</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">&amp;</span> <span class="s">&quot;jshort&quot;</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">&amp;</span> <span class="s">&quot;jint&quot;</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">&amp;</span> <span class="s">&quot;jint&quot;</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">&amp;</span> <span class="s">&quot;jlong&quot;</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">&amp;</span> <span class="s">&quot;jint&quot;</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">&amp;</span> <span class="s">&quot;jlong&quot;</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">&amp;</span> <span class="s">&quot;jlong&quot;</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">&amp;</span> <span class="s">&quot;jobject&quot;</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">&amp;</span> <span class="s">&quot;jfloat&quot;</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">&amp;</span> <span class="s">&quot;jdouble&quot;</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">&quot;void&quot;</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">&amp;</span> <span class="s">&quot;boolean&quot;</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">&amp;</span> <span class="s">&quot;char&quot;</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">&amp;</span> <span class="s">&quot;byte&quot;</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">&amp;</span> <span class="s">&quot;short&quot;</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">&amp;</span> <span class="s">&quot;short&quot;</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">&amp;</span> <span class="s">&quot;int&quot;</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">&amp;</span> <span class="s">&quot;int&quot;</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">&amp;</span> <span class="s">&quot;long&quot;</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">&amp;</span> <span class="s">&quot;int&quot;</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">&amp;</span> <span class="s">&quot;long&quot;</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">&amp;</span> <span class="s">&quot;long&quot;</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">&amp;</span> <span class="s">&quot;java.math.BigInteger&quot;</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">&amp;</span> <span class="s">&quot;float&quot;</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">&amp;</span> <span class="s">&quot;double&quot;</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">&quot;void&quot;</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">&amp;</span> <span class="s">&quot;boolean&quot;</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">&amp;</span> <span class="s">&quot;char&quot;</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">&amp;</span> <span class="s">&quot;byte&quot;</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">&amp;</span> <span class="s">&quot;short&quot;</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">&amp;</span> <span class="s">&quot;short&quot;</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">&amp;</span> <span class="s">&quot;int&quot;</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">&amp;</span> <span class="s">&quot;int&quot;</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">&amp;</span> <span class="s">&quot;long&quot;</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">&amp;</span> <span class="s">&quot;int&quot;</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">&amp;</span> <span class="s">&quot;long&quot;</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">&amp;</span> <span class="s">&quot;long&quot;</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">&amp;</span> <span class="s">&quot;java.math.BigInteger&quot;</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">&amp;</span> <span class="s">&quot;float&quot;</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">&amp;</span> <span class="s">&quot;double&quot;</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">&quot;void&quot;</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">*&amp;</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">&quot;jstring&quot;</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">*&amp;</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">&quot;String&quot;</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">*&amp;</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">&quot;String&quot;</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">&quot;jboolean&quot;</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">&quot;jchar&quot;</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">&quot;jbyte&quot;</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">&quot;jshort&quot;</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">&quot;jint&quot;</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">&quot;jlong&quot;</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">&quot;jfloat&quot;</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">&quot;jdouble&quot;</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">&quot;jstring&quot;</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">&quot;jobject&quot;</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">&quot;jbooleanArray&quot;</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">&quot;jcharArray&quot;</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">&quot;jbyteArray&quot;</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">&quot;jshortArray&quot;</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">&quot;jintArray&quot;</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">&quot;jlongArray&quot;</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">&quot;jfloatArray&quot;</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">&quot;jdoubleArray&quot;</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">&quot;jobjectArray&quot;</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">&quot;boolean&quot;</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">&quot;char&quot;</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">&quot;byte&quot;</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">&quot;short&quot;</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">&quot;int&quot;</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">&quot;long&quot;</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">&quot;float&quot;</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">&quot;double&quot;</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">&quot;String&quot;</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">&quot;Object&quot;</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">&quot;boolean[]&quot;</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">&quot;char[]&quot;</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">&quot;byte[]&quot;</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">&quot;short[]&quot;</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">&quot;int[]&quot;</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">&quot;long[]&quot;</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">&quot;float[]&quot;</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">&quot;double[]&quot;</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">&quot;Object[]&quot;</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">&quot;boolean&quot;</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">&quot;char&quot;</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">&quot;byte&quot;</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">&quot;short&quot;</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">&quot;int&quot;</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">&quot;long&quot;</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">&quot;float&quot;</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">&quot;double&quot;</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">&quot;String&quot;</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">&quot;Object&quot;</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">&quot;boolean[]&quot;</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">&quot;char[]&quot;</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">&quot;byte[]&quot;</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">&quot;short[]&quot;</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">&quot;int[]&quot;</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">&quot;long[]&quot;</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">&quot;float[]&quot;</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">&quot;double[]&quot;</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">&quot;Object[]&quot;</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">&quot;jlong&quot;</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">&quot;long&quot;</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">&quot;$&amp;javaclassname&quot;</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">&quot;jlong&quot;</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">&quot;long&quot;</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">&quot;$javaclassname&quot;</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">&quot;jlong&quot;</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">&quot;long&quot;</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">&quot;$javaclassname&quot;</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">&amp;</span> <span class="s">&quot;jlong&quot;</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">&amp;</span> <span class="s">&quot;long&quot;</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">&amp;</span> <span class="s">&quot;$javaclassname&quot;</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">&quot;jstring&quot;</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">&quot;String&quot;</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">&quot;$javaclassname&quot;</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">&quot;$jniinput&quot;</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">&quot;$javacall&quot;</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">&quot;Z&quot;</span><span class="p">)</span> <span class="kt">bool</span> <span class="s">&quot;$input = (jboolean) $1;&quot;</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">&quot;C&quot;</span><span class="p">)</span> <span class="kt">char</span> <span class="s">&quot;$input = (jint) $1;&quot;</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">&quot;B&quot;</span><span class="p">)</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="s">&quot;$input = (jbyte) $1;&quot;</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">&quot;S&quot;</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="s">&quot;$input = (jshort) $1;&quot;</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">&quot;S&quot;</span><span class="p">)</span> <span class="kt">short</span> <span class="s">&quot;$input = (jshort) $1;&quot;</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">&quot;I&quot;</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="s">&quot;$input = (jint) $1;&quot;</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">&quot;I&quot;</span><span class="p">)</span> <span class="kt">int</span> <span class="s">&quot;$input = (jint) $1;&quot;</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">&quot;J&quot;</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="s">&quot;$input = (jlong) $1;&quot;</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">&quot;I&quot;</span><span class="p">)</span> <span class="kt">long</span> <span class="s">&quot;$input = (jint) $1;&quot;</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">&quot;J&quot;</span><span class="p">)</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="s">&quot;$input = (jlong) $1;&quot;</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">&quot;J&quot;</span><span class="p">)</span> <span class="kt">long</span> <span class="kt">long</span> <span class="s">&quot;$input = (jlong) $1;&quot;</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">&quot;F&quot;</span><span class="p">)</span> <span class="kt">float</span> <span class="s">&quot;$input = (jfloat) $1;&quot;</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">&quot;D&quot;</span><span class="p">)</span> <span class="kt">double</span> <span class="s">&quot;$input = (jdouble) $1;&quot;</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">&quot;$jniinput&quot;</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">&quot;$javacall&quot;</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">&quot;BigInteger null&quot;</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">&quot;toByteArray&quot;</span><span class="p">,</span> <span class="s">&quot;()[B&quot;</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">&lt;</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">&lt;&lt;</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">&quot;BigInteger null&quot;</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">&quot;toByteArray&quot;</span><span class="p">,</span> <span class="s">&quot;()[B&quot;</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">&lt;</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">&lt;&lt;</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&#39;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">&quot;java/math/BigInteger&quot;</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">&quot;&lt;init&gt;&quot;</span><span class="p">,</span> <span class="s">&quot;([B)V&quot;</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">&lt;</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">&gt;&gt;</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">&quot;Ljava/math/BigInteger;&quot;</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">&amp;</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">&quot;java/math/BigInteger&quot;</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">&quot;&lt;init&gt;&quot;</span><span class="p">,</span> <span class="s">&quot;([B)V&quot;</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">&lt;</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">&gt;&gt;</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">&quot;$jniinput&quot;</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">&quot;$javacall&quot;</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">&quot;Ljava/lang/String;&quot;</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">&quot;$jniinput&quot;</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">&quot;$javacall&quot;</span>
<span class="cm">/* char *&amp; - 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">*&amp;</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">&amp;</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">*&amp;</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">$1</span> <span class="o">&amp;&amp;</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">*&amp;</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">&quot;&quot;</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">&quot;$jniinput&quot;</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">&quot;$javacall&quot;</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">&quot;V&quot;</span><span class="p">)</span> <span class="kt">void</span> <span class="s">&quot;&quot;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="s">&quot;$jniinput&quot;</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">&amp;</span> <span class="s">&quot;$javacall&quot;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">short</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">int</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">long</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">float</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">double</span> <span class="o">&amp;</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">&amp;</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">&quot;Z&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">bool</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jboolean)$1;&quot;</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">&quot;C&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jchar)$1;&quot;</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">&quot;B&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">signed</span> <span class="kt">char</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jbyte)$1;&quot;</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">&quot;S&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">char</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jshort)$1;&quot;</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">&quot;S&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">short</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jshort)$1;&quot;</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">&quot;I&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">short</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jint)$1;&quot;</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">&quot;I&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">int</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jint)$1;&quot;</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">&quot;J&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">int</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jlong)$1;&quot;</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">&quot;I&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">long</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jint)$1;&quot;</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">&quot;J&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jlong)$1;&quot;</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">&quot;J&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jlong)$1;&quot;</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">&quot;F&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">float</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jfloat)$1;&quot;</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">&quot;D&quot;</span><span class="p">)</span> <span class="k">const</span> <span class="kt">double</span> <span class="o">&amp;</span> <span class="s">&quot;$input = (jdouble)$1;&quot;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">)</span>
<span class="s">&quot;$jniinput&quot;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</span> <span class="p">(</span><span class="n">$*1_ltype</span> <span class="n">temp</span><span class="p">)</span>
<span class="s">&quot;$javacall&quot;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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 &amp; */</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">&amp;</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">&quot;BigInteger null&quot;</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">&quot;toByteArray&quot;</span><span class="p">,</span> <span class="s">&quot;()[B&quot;</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">&amp;</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">&lt;</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">&lt;&lt;</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">&amp;</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">&quot;BigInteger null&quot;</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">&quot;toByteArray&quot;</span><span class="p">,</span> <span class="s">&quot;()[B&quot;</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">&amp;</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">&lt;</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">&lt;&lt;</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">&amp;</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">&quot;java/math/BigInteger&quot;</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">&quot;&lt;init&gt;&quot;</span><span class="p">,</span> <span class="s">&quot;([B)V&quot;</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">&lt;</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">&gt;&gt;</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">&amp;</span> <span class="s">&quot;$jniinput&quot;</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">&amp;</span> <span class="s">&quot;$javacall&quot;</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">$&amp;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">$&amp;1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&amp;</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">&quot;Attempt to dereference null $1_type&quot;</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">$&amp;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">$&amp;1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&amp;</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">&quot;Unexpected null return for type $1_type&quot;</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">$&amp;1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&amp;</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">&amp;</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">$&amp;1_ltype</span> <span class="n">$1ptr</span> <span class="o">=</span> <span class="p">(</span><span class="n">$&amp;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">&amp;</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">$&amp;1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&amp;</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">&quot;L$packagepath/$&amp;javaclassname;&quot;</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">$&amp;1_ltype</span><span class="o">*</span><span class="p">)</span><span class="o">&amp;</span><span class="n">$input</span><span class="p">)</span> <span class="o">=</span> <span class="o">&amp;</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">&quot;new $&amp;javaclassname($jniinput, false)&quot;</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">&quot;$&amp;javaclassname.getCPtr($javacall)&quot;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">&quot;SWIG_UnPackData&quot;</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">&amp;</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">&amp;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">&quot;$1_type reference is null&quot;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">&quot;SWIG_PackData&quot;</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">&amp;</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">&#39;\0&#39;</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">&amp;</span>
<span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">(</span><span class="n">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">&quot;L$packagepath/$javaclassname;&quot;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">&quot;L$packagepath/$javaclassname;&quot;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">&amp;</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">&quot;Unexpected null return for type $1_type&quot;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">&quot;L$packagepath/$javaclassname;&quot;</span><span class="p">)</span> <span class="n">SWIGTYPE</span> <span class="o">&amp;</span>
<span class="o">%</span><span class="p">{</span> <span class="o">*</span><span class="p">(</span><span class="n">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">&amp;</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">&quot;($jniinput == 0) ? null : new $javaclassname($jniinput, false)&quot;</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">&amp;</span> <span class="s">&quot;new $javaclassname($jniinput, false)&quot;</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">&amp;</span> <span class="s">&quot;$javaclassname.getCPtr($javacall)&quot;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">$&amp;1_ltype</span><span class="p">)</span><span class="o">&amp;</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">&quot;&quot;</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">&quot;Ljava/lang/String;&quot;</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">&quot;&quot;</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">&quot;$jniinput&quot;</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">&quot;$javacall&quot;</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">&quot;Z&quot;</span><span class="p">)</span> <span class="n">jboolean</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;C&quot;</span><span class="p">)</span> <span class="n">jchar</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;B&quot;</span><span class="p">)</span> <span class="n">jbyte</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;S&quot;</span><span class="p">)</span> <span class="n">jshort</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;I&quot;</span><span class="p">)</span> <span class="n">jint</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;J&quot;</span><span class="p">)</span> <span class="n">jlong</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;F&quot;</span><span class="p">)</span> <span class="n">jfloat</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;D&quot;</span><span class="p">)</span> <span class="n">jdouble</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;Ljava/lang/String;&quot;</span><span class="p">)</span> <span class="n">jstring</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;Ljava/lang/Object;&quot;</span><span class="p">,</span><span class="n">nouse</span><span class="o">=</span><span class="s">&quot;1&quot;</span><span class="p">)</span> <span class="n">jobject</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;[Z&quot;</span><span class="p">)</span> <span class="n">jbooleanArray</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;[C&quot;</span><span class="p">)</span> <span class="n">jcharArray</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;[B&quot;</span><span class="p">)</span> <span class="n">jbyteArray</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;[S&quot;</span><span class="p">)</span> <span class="n">jshortArray</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;[I&quot;</span><span class="p">)</span> <span class="n">jintArray</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;[J&quot;</span><span class="p">)</span> <span class="n">jlongArray</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;[F&quot;</span><span class="p">)</span> <span class="n">jfloatArray</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;[D&quot;</span><span class="p">)</span> <span class="n">jdoubleArray</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;[Ljava/lang/Object;&quot;</span><span class="p">,</span><span class="n">nouse</span><span class="o">=</span><span class="s">&quot;1&quot;</span><span class="p">)</span> <span class="n">jobjectArray</span> <span class="s">&quot;$input = $1;&quot;</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">&quot;$jniinput&quot;</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">&quot;$javacall&quot;</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">&amp;</span>
<span class="s">&quot;&quot;</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">&amp;</span>
<span class="s">&quot;&quot;</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">&amp;</span>
<span class="s">&quot;&quot;</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">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">short</span> <span class="o">&amp;</span>
<span class="s">&quot;&quot;</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">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">int</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">long</span> <span class="o">&amp;</span>
<span class="s">&quot;&quot;</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">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">unsigned</span> <span class="kt">long</span> <span class="o">&amp;</span><span class="p">,</span>
<span class="k">const</span> <span class="kt">long</span> <span class="kt">long</span> <span class="o">&amp;</span>
<span class="s">&quot;&quot;</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">&amp;</span>
<span class="s">&quot;&quot;</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">&amp;</span>
<span class="s">&quot;&quot;</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">&amp;</span>
<span class="s">&quot;&quot;</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">*&amp;</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">&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;</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">&amp;</span><span class="p">,</span>
<span class="n">SWIGTYPE</span> <span class="o">*</span><span class="k">const</span><span class="o">&amp;</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">&quot;&quot;</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">&quot;C++ $1_type exception thrown, value: %d&quot;</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">&amp;</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">&quot;C++ $1_type exception thrown&quot;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</span>
<span class="s">&quot;$javainput&quot;</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">*&amp;</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">&quot;$javainput&quot;</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">&quot;$javainput&quot;</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">&quot;$&amp;javaclassname.getCPtr($javainput)&quot;</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">&amp;</span><span class="p">,</span> <span class="n">SWIGTYPE</span> <span class="p">[]</span> <span class="s">&quot;$javaclassname.getCPtr($javainput)&quot;</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">&quot;$javaclassname.getCMemberPtr($javainput)&quot;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">*&amp;</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">$&amp;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">&amp;</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">&amp;</span> <span class="s">&quot;jlong&quot;</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">&amp;</span> <span class="s">&quot;long&quot;</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">&amp;</span> <span class="s">&quot;$*javaclassname&quot;</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">&amp;</span> <span class="s">&quot;$*javaclassname.getCPtr($javainput)&quot;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&quot;&quot;</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">&amp;</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">&quot;public class&quot;</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">&amp;</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">&quot;&quot;</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">&amp;</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">&quot;&quot;</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">&amp;</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">&quot;&quot;</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">&amp;</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&#39;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&#39;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">&quot;</span><span class="se">\n</span><span class="s"> $imclassname.$javaclazznamedirector_connect(this, swigCPtr, swigCMemOwn, WEAKREF);&quot;</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">&quot;delete&quot;</span><span class="p">,</span> <span class="n">methodmodifiers</span><span class="o">=</span><span class="s">&quot;public synchronized&quot;</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">&quot;delete&quot;</span><span class="p">,</span> <span class="n">methodmodifiers</span><span class="o">=</span><span class="s">&quot;public synchronized&quot;</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">&quot;swigDirectorDisconnect&quot;</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">&quot;swigReleaseOwnership&quot;</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">&quot;swigTakeOwnership&quot;</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(&quot;java:const&quot;,&quot;flag&quot;)</span>
<span class="cp">#define %javaconstvalue(value) %feature(&quot;java:constvalue&quot;,value)</span>
<span class="cp">#define %javaenum(wrapapproach) %feature(&quot;java:enum&quot;,&quot;wrapapproach&quot;)</span>
<span class="cp">#define %javamethodmodifiers %feature(&quot;java:methodmodifiers&quot;)</span>
<span class="cp">#define %javaexception(exceptionclasses) %feature(&quot;except&quot;,throws=exceptionclasses)</span>
<span class="cp">#define %nojavaexception %feature(&quot;except&quot;,&quot;0&quot;,throws=&quot;&quot;)</span>
<span class="cp">#define %clearjavaexception %feature(&quot;except&quot;,&quot;&quot;,throws=&quot;&quot;)</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">&quot;public class&quot;</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">&quot;public class&quot;</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">&amp;</span> <span class="p">{</span> <span class="k">const</span> <span class="kt">size_t</span> <span class="o">&amp;</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">&amp;</span> <span class="p">{</span> <span class="n">SWIGTYPE</span> <span class="p">((</span><span class="o">&amp;</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 &amp; 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">&quot;jbyteArray&quot;</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">&quot;byte[]&quot;</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">&quot;byte[]&quot;</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">&quot;$javainput&quot;</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">&quot;&quot;</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">&quot;[B&quot;</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">-&gt;</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">-&gt;</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">-&gt;</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">&lt;</span><span class="n">javakw</span><span class="p">.</span><span class="n">swg</span><span class="o">&gt;</span>
<span class="c1">// Default enum handling</span>
<span class="nf">%include</span> <span class="o">&lt;</span><span class="n">enumtypesafe</span><span class="p">.</span><span class="n">swg</span><span class="o">&gt;</span>
</pre></div>
</body>
</html>
<!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">&lt;</span><span class="n">std_container</span><span class="p">.</span><span class="n">i</span><span class="o">&gt;</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&lt;T&gt;), f(const std::vector&lt;T&gt;&amp;):</span>
<span class="c1">// the parameter being read-only, either a sequence or a</span>
<span class="c1">// previously wrapped std::vector&lt;T&gt; can be passed.</span>
<span class="c1">// -- f(std::vector&lt;T&gt;&amp;), f(std::vector&lt;T&gt;*):</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&lt;T&gt; f(), const std::vector&lt;T&gt;&amp; 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&lt;T&gt;&amp; f(), std::vector&lt;T&gt;* 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&lt;T&gt;* f(), f(const std::vector&lt;T&gt;*):</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 &lt;vector&gt;</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">&lt;</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">&lt;</span> <span class="n">_Tp</span> <span class="o">&gt;</span> <span class="o">&gt;</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">&amp;</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">&amp;</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">&lt;</span><span class="n">_Tp</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</span><span class="p">),</span> <span class="s">&quot;header&quot;</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">&quot;StdVectorTraits&quot;</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">&lt;&gt;</span> <span class="k">struct</span> <span class="n">traits</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="n">_Tp</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</span> <span class="o">&gt;</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">&quot;std::vector&lt;&quot;</span> <span class="cp">#_Tp</span> <span class="s">&quot;,&quot;</span> <span class="cp">#_Alloc</span> <span class="s">&quot; &gt;&quot;</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">&lt;</span><span class="n">_Tp</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</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">&lt;</span><span class="n">_Tp</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</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 &#39;const SWIGTYPE*&amp;&#39; can be defined</span>
<span class="c1">// ***</span>
<span class="k">template</span><span class="o">&lt;</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">&gt;</span>
<span class="k">class</span> <span class="nc">vector</span><span class="o">&lt;</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</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">&lt;</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</span><span class="p">),</span> <span class="s">&quot;header&quot;</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">&quot;StdVectorTraits&quot;</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">&lt;&gt;</span> <span class="k">struct</span> <span class="n">traits</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</span> <span class="o">&gt;</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">&quot;std::vector&lt;&quot;</span> <span class="cp">#_Tp</span> <span class="s">&quot; *,&quot;</span> <span class="cp">#_Alloc</span> <span class="s">&quot; &gt;&quot;</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">&lt;</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</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">&lt;</span><span class="n">_Tp</span><span class="o">*</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</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">&lt;</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">&gt;</span>
<span class="k">class</span> <span class="nc">vector</span><span class="o">&lt;</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">&gt;</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">&lt;</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">&gt;</span><span class="p">),</span> <span class="s">&quot;header&quot;</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">&quot;StdVectorTraits&quot;</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">&lt;&gt;</span> <span class="k">struct</span> <span class="n">traits</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</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">&gt;</span> <span class="o">&gt;</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">&quot;std::vector&lt;&quot;</span> <span class="cp">#_Tp</span> <span class="s">&quot; const*,&quot;</span> <span class="cp">#_Alloc</span> <span class="s">&quot; &gt;&quot;</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">&lt;</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">&gt;</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">&lt;</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">&gt;</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">&lt;</span><span class="k">class</span> <span class="nc">_Alloc</span> <span class="o">&gt;</span>
<span class="k">class</span> <span class="nc">vector</span><span class="o">&lt;</span><span class="kt">bool</span><span class="p">,</span><span class="n">_Alloc</span> <span class="o">&gt;</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">&lt;</span><span class="kt">bool</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</span><span class="p">),</span> <span class="s">&quot;header&quot;</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">&quot;StdVectorTraits&quot;</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">&lt;&gt;</span> <span class="k">struct</span> <span class="n">traits</span><span class="o">&lt;</span><span class="n">std</span><span class="o">::</span><span class="n">vector</span><span class="o">&lt;</span><span class="kt">bool</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</span> <span class="o">&gt;</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">&quot;std::vector&lt;bool, _Alloc &gt;&quot;</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">&lt;</span><span class="kt">bool</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</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">&lt;</span><span class="kt">bool</span><span class="p">,</span> <span class="n">_Alloc</span> <span class="o">&gt;</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) &amp;&amp; !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