<h2 id="summary">Summary</h2>
<p>Afb-daemon binders serve files through HTTP protocol and offers to developers the capability to expose application API methods through HTTP or WebSocket protocol.</p>
<p>Binder bindings are used to add API to afb-daemon. This part describes how to write a binding for afb-daemon.</p>
<h2 id="summary">Summary</h2>
<p>Afb-daemon binders serve files through HTTP protocol and offers to developers the capability to expose application API methods through HTTP or WebSocket protocol.</p>
<p>Binder bindings are used to add API to afb-daemon. This part describes how to write a binding for afb-daemon.</p>
<span class="co"> * Its send the object 'obj' (can be NULL) with an</span>
<span class="co"> * informationnal comment 'info (can also be NULL).</span>
<span class="co"> *</span>
<span class="co"> * Its send the object 'obj' (can be NULL) with an</span>
<span class="co"> * informationnal comment 'info (can also be NULL).</span>
<span class="co"> *</span>
<span class="co"> * Thus, in the case where 'obj' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>
<span class="co"> * Thus, in the case where 'obj' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>
<span class="co"> * Same as 'afb_req_success' but the 'info' is a formatting</span>
<span class="co"> * string followed by arguments.</span>
<span class="co"> *</span>
<span class="co"> * Same as 'afb_req_success' but the 'info' is a formatting</span>
<span class="co"> * string followed by arguments.</span>
<span class="co"> *</span>
<span class="co"> * Thus, in the case where 'obj' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>
<span class="co"> * Thus, in the case where 'obj' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>
<span class="co"> * to call afb_req_success(NULL, info). Thus even if possible it</span>
<span class="co"> * is strongly recommended to NEVER use "success" for status.</span>
<span class="co"> *</span>
<span class="co"> * to call afb_req_success(NULL, info). Thus even if possible it</span>
<span class="co"> * is strongly recommended to NEVER use "success" for status.</span>
<span class="co"> *</span>
<span class="co"> * Thus, in the case where 'obj' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>
<span class="co"> * Thus, in the case where 'obj' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>
<span class="co"> * Same as 'afb_req_fail' but the 'info' is a formatting</span>
<span class="co"> * string followed by arguments.</span>
<span class="co"> *</span>
<span class="co"> * Same as 'afb_req_fail' but the 'info' is a formatting</span>
<span class="co"> * string followed by arguments.</span>
<span class="co"> *</span>
<span class="co"> * Thus, in the case where 'obj' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>
<span class="dt">void</span> afb_req_fail_f(<span class="kw">struct</span> afb_req req, <span class="dt">const</span> <span class="dt">char</span> *status, <span class="dt">const</span> <span class="dt">char</span> *info, ...);</code></pre>
<blockquote>
<span class="co"> * Thus, in the case where 'obj' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>
<span class="dt">void</span> afb_req_fail_f(<span class="kw">struct</span> afb_req req, <span class="dt">const</span> <span class="dt">char</span> *status, <span class="dt">const</span> <span class="dt">char</span> *info, ...);</code></pre>
<blockquote>
-<p>For conveniency, these functions automatically call <strong>json_object_put</strong> to release <strong>obj</strong>. Because <strong>obj</strong> usage count is null after being passed to a reply function, it SHOULD not be used anymore. If exceptionally <strong>obj</strong> needs to remain usable after reply function then using <strong>json_object_get</strong> on <strong>obj</strong> to increase usage count and cancels the effect the <strong>json_object_put</strong> is possible.</p>
+<p>For convenience, these functions automatically call <strong>json_object_put</strong> to release <strong>obj</strong>. Because <strong>obj</strong> usage count is null after being passed to a reply function, it SHOULD not be used anymore. If exceptionally <strong>obj</strong> needs to remain usable after reply function then using <strong>json_object_get</strong> on <strong>obj</strong> to increase usage count and cancels the effect the <strong>json_object_put</strong> is possible.</p>
</blockquote>
<h2 id="getting-argument-of-invocation">Getting argument of invocation</h2>
<p>Many methods expect arguments. Afb-daemon's bindings retrieve arguments by name and not by position.</p>
</blockquote>
<h2 id="getting-argument-of-invocation">Getting argument of invocation</h2>
<p>Many methods expect arguments. Afb-daemon's bindings retrieve arguments by name and not by position.</p>
<span class="co"> * 'object' can be NULL.</span>
<span class="co"> * 'daemon' MUST be the daemon given in interface when activating the binding.</span>
<span class="co"> *</span>
<span class="co"> * 'object' can be NULL.</span>
<span class="co"> * 'daemon' MUST be the daemon given in interface when activating the binding.</span>
<span class="co"> *</span>
<span class="co"> * Thus, in the case where 'object' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>
<span class="co"> * Thus, in the case where 'object' should remain available after</span>
<span class="co"> * the function returns, the function 'json_object_get' shall be used.</span>
<span class="co"> */</span>