I have designed a way to provide both sync and async variants from the same code for a nodejs binding.<div><br></div><div>The code can be found at:</div><div><a href="https://github.com/mtibeica/node-xapian/blob/master/xapian-op.h">https://github.com/mtibeica/node-xapian/blob/master/xapian-op.h</a> </div>
<div><a href="https://github.com/mtibeica/node-xapian/blob/master/xapian-enquire.h">https://github.com/mtibeica/node-xapian/blob/master/xapian-enquire.h</a> </div><div><a href="https://github.com/mtibeica/node-xapian/blob/master/xapian-enquire.cc">https://github.com/mtibeica/node-xapian/blob/master/xapian-enquire.cc</a> <br>
<div><br></div><div>Every method which has both sync and async has to have the following C++ methods (GetMset as an example):</div><div><span class="k" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">struct</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">GetMset_data</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">{ ... }</span></div>
<div><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"><span style="color:rgb(0,0,0);font-family:arial;line-height:normal;white-space:normal">-  the data which will be passed</span>
</span></div><div><span class="k" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">static</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Handle</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">&lt;</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Value</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">&gt;</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">GetMset</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="k" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">const</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Arguments</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">&amp;</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">args</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">);</span>
</div><div>-  parse the sync method parameters and create the GetMset_data object.</div><div><span class="k" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">static</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Handle</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">&lt;</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Value</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">&gt;</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">GetMsetSync</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="k" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">const</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Arguments</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">&amp;</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">args</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">);</span>
</div><div>- parse the async method parameters and create the GetMset_data object.</div><div><span class="k" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">static</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Xapian</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">::</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Error</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">*</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">GetMset_process</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">GetMset_data</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">*</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">data</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">,</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Enquire</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">*</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">pThis</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">);</span>
</div><div>- the actual data processing (which will happen either on the thread pool or on the main thread depending on the called method).</div><div><span class="k" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">static</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Handle</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">&lt;</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Value</span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">&gt;</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">GetMset_convert</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">GetMset_data</span><span style="color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;font-size:12px;line-height:16px;white-space:pre;background-color:rgb(255,255,255)"> </span><span class="o" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;font-weight:bold;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">*</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">data</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">);</span>
</div><div>- converts the GetMset_data into a JS object which will be either returned or sent as a parameter in a callback</div><div><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">DECLARE_POOLS</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">(</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">GetMset</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">,</span><span class="n" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">Enquire</span><span class="p" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font:inherit;color:rgb(51,51,51);font-family:&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace;line-height:16px;white-space:pre;background-color:rgb(255,255,255)">)</span>
</div><div>- macro which creates other helping methods</div><div><br></div><div><br></div><div>Another advantage is that the libeio code is isolated in xapian-op.h, so porting to node 0.6+ will be easier.</div><div>Any suggestions?</div>
</div>