Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-release > by-pkgid > 06e680b77787ac42bc1ade2d5993b9ee > files > 55

libopenobex-devel-1.7.2-2.mga7.armv7hl.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OpenOBEX: obex.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">OpenOBEX
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1d588721a3bfadf2de93b304da302d42.html">openobex</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">obex.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>OpenOBEX library - Free implementation of the Object Exchange protocol.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;sys/socket.h&gt;</code><br />
<code>#include &lt;inttypes.h&gt;</code><br />
<code>#include &lt;<a class="el" href="obex__const_8h.html">openobex/obex_const.h</a>&gt;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a438ebf629aae07b785e3c1619912aaf8"><td class="memItemLeft" align="right" valign="top">typedef struct obex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a></td></tr>
<tr class="separator:a438ebf629aae07b785e3c1619912aaf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94da9c25cced2e598b617c11404f7a1f"><td class="memItemLeft" align="right" valign="top">typedef struct obex_object&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a></td></tr>
<tr class="separator:a94da9c25cced2e598b617c11404f7a1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacc782566d3c37c57579ec9bc260029d"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#aacc782566d3c37c57579ec9bc260029d">obex_event_t</a>) (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *handle, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *obj, int mode, int event, int <a class="el" href="obex__const_8h.html#aaf94005a907b2ff761fa260a4ad7debb">obex_cmd</a>, int <a class="el" href="obex__const_8h.html#abee03ffce276c0ae217546c9f85292b2">obex_rsp</a>)</td></tr>
<tr class="separator:aacc782566d3c37c57579ec9bc260029d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a2e36489f991940401eb48320d63f3844"><td class="memItemLeft" align="right" valign="top"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a2e36489f991940401eb48320d63f3844">OBEX_Init</a> (int transport, <a class="el" href="obex_8h.html#aacc782566d3c37c57579ec9bc260029d">obex_event_t</a> eventcb, unsigned int flags)</td></tr>
<tr class="memdesc:a2e36489f991940401eb48320d63f3844"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize OBEX.  <a href="#a2e36489f991940401eb48320d63f3844">More...</a><br /></td></tr>
<tr class="separator:a2e36489f991940401eb48320d63f3844"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9880992f2d1e49130ab9a76c87d2a31"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#aa9880992f2d1e49130ab9a76c87d2a31">OBEX_Cleanup</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:aa9880992f2d1e49130ab9a76c87d2a31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close down an OBEX instance.  <a href="#aa9880992f2d1e49130ab9a76c87d2a31">More...</a><br /></td></tr>
<tr class="separator:aa9880992f2d1e49130ab9a76c87d2a31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b2d9077c90125efa0a17296d6352268"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a4b2d9077c90125efa0a17296d6352268">OBEX_SetUserData</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, void *data)</td></tr>
<tr class="memdesc:a4b2d9077c90125efa0a17296d6352268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set userdata of an OBEX handle.  <a href="#a4b2d9077c90125efa0a17296d6352268">More...</a><br /></td></tr>
<tr class="separator:a4b2d9077c90125efa0a17296d6352268"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b614a1b4f50c9ddb10ff5c45300a26d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a4b614a1b4f50c9ddb10ff5c45300a26d">OBEX_GetUserData</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:a4b614a1b4f50c9ddb10ff5c45300a26d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the userdata from an OBEX handle.  <a href="#a4b614a1b4f50c9ddb10ff5c45300a26d">More...</a><br /></td></tr>
<tr class="separator:a4b614a1b4f50c9ddb10ff5c45300a26d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4df8b440b71b08192f8c6834b162c5ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a4df8b440b71b08192f8c6834b162c5ad">OBEX_SetUserCallBack</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#aacc782566d3c37c57579ec9bc260029d">obex_event_t</a> eventcb, void *data)</td></tr>
<tr class="memdesc:a4df8b440b71b08192f8c6834b162c5ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change user callback on an OBEX handle.  <a href="#a4df8b440b71b08192f8c6834b162c5ad">More...</a><br /></td></tr>
<tr class="separator:a4df8b440b71b08192f8c6834b162c5ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa113f52abc1574dcd5beeb4f5b36fbf7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#aa113f52abc1574dcd5beeb4f5b36fbf7">OBEX_SetTransportMTU</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, uint16_t mtu_rx, uint16_t mtu_tx_max)</td></tr>
<tr class="memdesc:aa113f52abc1574dcd5beeb4f5b36fbf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set MTU to be used for receive and transmit.  <a href="#aa113f52abc1574dcd5beeb4f5b36fbf7">More...</a><br /></td></tr>
<tr class="separator:aa113f52abc1574dcd5beeb4f5b36fbf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee31f7c60c0b8ebccc082cc0cc68c3ac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#aee31f7c60c0b8ebccc082cc0cc68c3ac">OBEX_GetFD</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:aee31f7c60c0b8ebccc082cc0cc68c3ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get transport file descriptor.  <a href="#aee31f7c60c0b8ebccc082cc0cc68c3ac">More...</a><br /></td></tr>
<tr class="separator:aee31f7c60c0b8ebccc082cc0cc68c3ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c9b9025540ec3b229a71220f89e0c1d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a6c9b9025540ec3b229a71220f89e0c1d">OBEX_RegisterCTransport</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="structobex__ctrans__t.html">obex_ctrans_t</a> *ctrans)</td></tr>
<tr class="memdesc:a6c9b9025540ec3b229a71220f89e0c1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a custom transport.  <a href="#a6c9b9025540ec3b229a71220f89e0c1d">More...</a><br /></td></tr>
<tr class="separator:a6c9b9025540ec3b229a71220f89e0c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21e1f70c745ba1b1c0258e5671f09bf0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a21e1f70c745ba1b1c0258e5671f09bf0">OBEX_SetCustomData</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, void *data)</td></tr>
<tr class="memdesc:a21e1f70c745ba1b1c0258e5671f09bf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set customdata of an OBEX handle.  <a href="#a21e1f70c745ba1b1c0258e5671f09bf0">More...</a><br /></td></tr>
<tr class="separator:a21e1f70c745ba1b1c0258e5671f09bf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a804132d73f70856a3c9183d66ccb2bfa"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a804132d73f70856a3c9183d66ccb2bfa">OBEX_GetCustomData</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:a804132d73f70856a3c9183d66ccb2bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read the customdata from an OBEX handle.  <a href="#a804132d73f70856a3c9183d66ccb2bfa">More...</a><br /></td></tr>
<tr class="separator:a804132d73f70856a3c9183d66ccb2bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39e7dba23fcdd9afeff364b9296a71a2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a39e7dba23fcdd9afeff364b9296a71a2">OBEX_TransportConnect</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, struct sockaddr *saddr, int addlen)</td></tr>
<tr class="memdesc:a39e7dba23fcdd9afeff364b9296a71a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to connect to peer.  <a href="#a39e7dba23fcdd9afeff364b9296a71a2">More...</a><br /></td></tr>
<tr class="separator:a39e7dba23fcdd9afeff364b9296a71a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8d944622d69fc677b9d7caa0ba60913"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#ac8d944622d69fc677b9d7caa0ba60913">OBEX_TransportDisconnect</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:ac8d944622d69fc677b9d7caa0ba60913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnect transport.  <a href="#ac8d944622d69fc677b9d7caa0ba60913">More...</a><br /></td></tr>
<tr class="separator:ac8d944622d69fc677b9d7caa0ba60913"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24454492afd6272d033bc21fc103016e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a24454492afd6272d033bc21fc103016e">OBEX_CustomDataFeed</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, uint8_t *inputbuf, int actual)</td></tr>
<tr class="memdesc:a24454492afd6272d033bc21fc103016e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Feed OBEX with data when using a custom transport.  <a href="#a24454492afd6272d033bc21fc103016e">More...</a><br /></td></tr>
<tr class="separator:a24454492afd6272d033bc21fc103016e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aa68f288d49a1c9a9e8cad22e2c6d6f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a4aa68f288d49a1c9a9e8cad22e2c6d6f">OBEX_SetTimeout</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, int64_t timeout)</td></tr>
<tr class="memdesc:a4aa68f288d49a1c9a9e8cad22e2c6d6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the timeout for read/write operations if supported by the underlying transport.  <a href="#a4aa68f288d49a1c9a9e8cad22e2c6d6f">More...</a><br /></td></tr>
<tr class="separator:a4aa68f288d49a1c9a9e8cad22e2c6d6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2107fbb4b60650b5d1077b8ceabe6508"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a2107fbb4b60650b5d1077b8ceabe6508">OBEX_Work</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:a2107fbb4b60650b5d1077b8ceabe6508"><td class="mdescLeft">&#160;</td><td class="mdescRight">Let the OBEX parser do some work.  <a href="#a2107fbb4b60650b5d1077b8ceabe6508">More...</a><br /></td></tr>
<tr class="separator:a2107fbb4b60650b5d1077b8ceabe6508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af171da5bbb3fbaa48783f3944f465a2a"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="obex__const_8h.html#a9c1ba5023d23929d97a969d7d4ab794a">obex_data_direction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#af171da5bbb3fbaa48783f3944f465a2a">OBEX_GetDataDirection</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:af171da5bbb3fbaa48783f3944f465a2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine data direction of <a class="el" href="api_8c.html#a2107fbb4b60650b5d1077b8ceabe6508" title="Let the OBEX parser do some work. ">OBEX_Work()</a>  <a href="#af171da5bbb3fbaa48783f3944f465a2a">More...</a><br /></td></tr>
<tr class="separator:af171da5bbb3fbaa48783f3944f465a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab662cf38ff64ca901ecc0d6431b93cc0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#ab662cf38ff64ca901ecc0d6431b93cc0">OBEX_HandleInput</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, int timeout)</td></tr>
<tr class="memdesc:ab662cf38ff64ca901ecc0d6431b93cc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Let the OBEX parser do some work.  <a href="#ab662cf38ff64ca901ecc0d6431b93cc0">More...</a><br /></td></tr>
<tr class="separator:ab662cf38ff64ca901ecc0d6431b93cc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a672c6e40dd8fb3a57aaa7c92d83f54b0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a672c6e40dd8fb3a57aaa7c92d83f54b0">OBEX_ServerRegister</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, struct sockaddr *saddr, int addrlen)</td></tr>
<tr class="memdesc:a672c6e40dd8fb3a57aaa7c92d83f54b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start listening for incoming connections.  <a href="#a672c6e40dd8fb3a57aaa7c92d83f54b0">More...</a><br /></td></tr>
<tr class="separator:a672c6e40dd8fb3a57aaa7c92d83f54b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01d04dd9295839906ca8a5a32f2db60d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a01d04dd9295839906ca8a5a32f2db60d">OBEX_ServerAccept</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *server, <a class="el" href="obex_8h.html#aacc782566d3c37c57579ec9bc260029d">obex_event_t</a> eventcb, void *data)</td></tr>
<tr class="memdesc:a01d04dd9295839906ca8a5a32f2db60d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accept an incoming connection.  <a href="#a01d04dd9295839906ca8a5a32f2db60d">More...</a><br /></td></tr>
<tr class="separator:a01d04dd9295839906ca8a5a32f2db60d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4876bfb227270da645db3d7aab9052e7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a4876bfb227270da645db3d7aab9052e7">OBEX_Request</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object)</td></tr>
<tr class="memdesc:a4876bfb227270da645db3d7aab9052e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Schedule a request (as client).  <a href="#a4876bfb227270da645db3d7aab9052e7">More...</a><br /></td></tr>
<tr class="separator:a4876bfb227270da645db3d7aab9052e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cb19df8a265c388505c5b8181339652"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a8cb19df8a265c388505c5b8181339652">OBEX_CancelRequest</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, int nice)</td></tr>
<tr class="memdesc:a8cb19df8a265c388505c5b8181339652"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel an ongoing operation.  <a href="#a8cb19df8a265c388505c5b8181339652">More...</a><br /></td></tr>
<tr class="separator:a8cb19df8a265c388505c5b8181339652"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c273ceaf8ad777672ad83e61bbfd354"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a8c273ceaf8ad777672ad83e61bbfd354">OBEX_SuspendRequest</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object)</td></tr>
<tr class="memdesc:a8c273ceaf8ad777672ad83e61bbfd354"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend transfer of an object.  <a href="#a8c273ceaf8ad777672ad83e61bbfd354">More...</a><br /></td></tr>
<tr class="separator:a8c273ceaf8ad777672ad83e61bbfd354"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a622cff3dfa73c80a8118d9f9fe6686b0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a622cff3dfa73c80a8118d9f9fe6686b0">OBEX_ResumeRequest</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:a622cff3dfa73c80a8118d9f9fe6686b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resume transfer of an object.  <a href="#a622cff3dfa73c80a8118d9f9fe6686b0">More...</a><br /></td></tr>
<tr class="separator:a622cff3dfa73c80a8118d9f9fe6686b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a33f0f2f2f0228c5734f921bf8f27a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a9a33f0f2f2f0228c5734f921bf8f27a7">OBEX_ObjectNew</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, uint8_t cmd)</td></tr>
<tr class="memdesc:a9a33f0f2f2f0228c5734f921bf8f27a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new OBEX Object.  <a href="#a9a33f0f2f2f0228c5734f921bf8f27a7">More...</a><br /></td></tr>
<tr class="separator:a9a33f0f2f2f0228c5734f921bf8f27a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac106d21f7e67d584bf61ecbde52e5974"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#ac106d21f7e67d584bf61ecbde52e5974">OBEX_ObjectDelete</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object)</td></tr>
<tr class="memdesc:ac106d21f7e67d584bf61ecbde52e5974"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete an OBEX object.  <a href="#ac106d21f7e67d584bf61ecbde52e5974">More...</a><br /></td></tr>
<tr class="separator:ac106d21f7e67d584bf61ecbde52e5974"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a067f351c3162b90686f4830ad16b3edf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a067f351c3162b90686f4830ad16b3edf">OBEX_ObjectGetSpace</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object, unsigned int flags)</td></tr>
<tr class="memdesc:a067f351c3162b90686f4830ad16b3edf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get available space in object.  <a href="#a067f351c3162b90686f4830ad16b3edf">More...</a><br /></td></tr>
<tr class="separator:a067f351c3162b90686f4830ad16b3edf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8f928392a67bd87b06bf5e7ae78d25d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#ab8f928392a67bd87b06bf5e7ae78d25d">OBEX_SetReponseMode</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, enum <a class="el" href="obex__const_8h.html#a902cdff2e09c4c4fac912450f26a2d47">obex_rsp_mode</a> rsp_mode)</td></tr>
<tr class="memdesc:ab8f928392a67bd87b06bf5e7ae78d25d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the OBEX response mode.  <a href="#ab8f928392a67bd87b06bf5e7ae78d25d">More...</a><br /></td></tr>
<tr class="separator:ab8f928392a67bd87b06bf5e7ae78d25d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63eb221ab7ed3bd8a4b44f33d48b80ca"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a63eb221ab7ed3bd8a4b44f33d48b80ca">OBEX_ObjectAddHeader</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object, uint8_t hi, <a class="el" href="unionobex__headerdata__t.html">obex_headerdata_t</a> hv, uint32_t hv_size, unsigned int flags)</td></tr>
<tr class="memdesc:a63eb221ab7ed3bd8a4b44f33d48b80ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach a header to an object.  <a href="#a63eb221ab7ed3bd8a4b44f33d48b80ca">More...</a><br /></td></tr>
<tr class="separator:a63eb221ab7ed3bd8a4b44f33d48b80ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bbc53a3d1803c101333f9642932bf30"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a7bbc53a3d1803c101333f9642932bf30">OBEX_ObjectGetNextHeader</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object, uint8_t *hi, <a class="el" href="unionobex__headerdata__t.html">obex_headerdata_t</a> *hv, uint32_t *hv_size)</td></tr>
<tr class="memdesc:a7bbc53a3d1803c101333f9642932bf30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get next available header from an object.  <a href="#a7bbc53a3d1803c101333f9642932bf30">More...</a><br /></td></tr>
<tr class="separator:a7bbc53a3d1803c101333f9642932bf30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90c49cdebaece8eee3ac0519c172784c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a90c49cdebaece8eee3ac0519c172784c">OBEX_ObjectReParseHeaders</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object)</td></tr>
<tr class="memdesc:a90c49cdebaece8eee3ac0519c172784c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow the user to parse again the rx headers.  <a href="#a90c49cdebaece8eee3ac0519c172784c">More...</a><br /></td></tr>
<tr class="separator:a90c49cdebaece8eee3ac0519c172784c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3080b899e6a3d2b5e4afd906303c7d7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#ad3080b899e6a3d2b5e4afd906303c7d7">OBEX_ObjectSetRsp</a> (<a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object, uint8_t rsp, uint8_t lastrsp)</td></tr>
<tr class="memdesc:ad3080b899e6a3d2b5e4afd906303c7d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the response to a received request.  <a href="#ad3080b899e6a3d2b5e4afd906303c7d7">More...</a><br /></td></tr>
<tr class="separator:ad3080b899e6a3d2b5e4afd906303c7d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfac4c6cdd331a3b068ff74b5a458739"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#abfac4c6cdd331a3b068ff74b5a458739">OBEX_ObjectGetNonHdrData</a> (<a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object, uint8_t **buffer)</td></tr>
<tr class="memdesc:abfac4c6cdd331a3b068ff74b5a458739"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get any data which was before headers.  <a href="#abfac4c6cdd331a3b068ff74b5a458739">More...</a><br /></td></tr>
<tr class="separator:abfac4c6cdd331a3b068ff74b5a458739"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2c24cbfcf349b03e4be15f70a8c4c6c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#ab2c24cbfcf349b03e4be15f70a8c4c6c">OBEX_ObjectSetNonHdrData</a> (<a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object, const uint8_t *buffer, unsigned int len)</td></tr>
<tr class="memdesc:ab2c24cbfcf349b03e4be15f70a8c4c6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set data to send before headers.  <a href="#ab2c24cbfcf349b03e4be15f70a8c4c6c">More...</a><br /></td></tr>
<tr class="separator:ab2c24cbfcf349b03e4be15f70a8c4c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96c673c11d39b599974b27b8154f209f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a96c673c11d39b599974b27b8154f209f">OBEX_ObjectSetHdrOffset</a> (<a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object, unsigned int offset)</td></tr>
<tr class="memdesc:a96c673c11d39b599974b27b8154f209f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set headeroffset.  <a href="#a96c673c11d39b599974b27b8154f209f">More...</a><br /></td></tr>
<tr class="separator:a96c673c11d39b599974b27b8154f209f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33d82538e2048af047c35e1112c3aa3e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a33d82538e2048af047c35e1112c3aa3e">OBEX_ObjectReadStream</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object, const uint8_t **buf)</td></tr>
<tr class="memdesc:a33d82538e2048af047c35e1112c3aa3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read data from body stream.  <a href="#a33d82538e2048af047c35e1112c3aa3e">More...</a><br /></td></tr>
<tr class="separator:a33d82538e2048af047c35e1112c3aa3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca8edad4a441f0a3d2fd68ea660554be"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#aca8edad4a441f0a3d2fd68ea660554be">OBEX_ObjectGetCommand</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *object)</td></tr>
<tr class="memdesc:aca8edad4a441f0a3d2fd68ea660554be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the OBEX commmand of an object.  <a href="#aca8edad4a441f0a3d2fd68ea660554be">More...</a><br /></td></tr>
<tr class="separator:aca8edad4a441f0a3d2fd68ea660554be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a818d55b231be7e1645498e6041aae762"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a818d55b231be7e1645498e6041aae762">OBEX_ResponseToString</a> (int rsp)</td></tr>
<tr class="memdesc:a818d55b231be7e1645498e6041aae762"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a human understandable string from a response-code.  <a href="#a818d55b231be7e1645498e6041aae762">More...</a><br /></td></tr>
<tr class="separator:a818d55b231be7e1645498e6041aae762"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8059439c9ebb3671c69401a36e3d912"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#ae8059439c9ebb3671c69401a36e3d912">TcpOBEX_ServerRegister</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, struct sockaddr *addr, int addrlen)</td></tr>
<tr class="memdesc:ae8059439c9ebb3671c69401a36e3d912"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start listening for incoming TCP connections.  <a href="#ae8059439c9ebb3671c69401a36e3d912">More...</a><br /></td></tr>
<tr class="separator:ae8059439c9ebb3671c69401a36e3d912"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10baf7beef2e62f5989a91c9e9655ed9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a10baf7beef2e62f5989a91c9e9655ed9">TcpOBEX_TransportConnect</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, struct sockaddr *addr, int addrlen)</td></tr>
<tr class="memdesc:a10baf7beef2e62f5989a91c9e9655ed9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect TCP transport.  <a href="#a10baf7beef2e62f5989a91c9e9655ed9">More...</a><br /></td></tr>
<tr class="separator:a10baf7beef2e62f5989a91c9e9655ed9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e3a548402b3683bfc85bd0d016cea54"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a4e3a548402b3683bfc85bd0d016cea54">IrOBEX_ServerRegister</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, const char *service)</td></tr>
<tr class="memdesc:a4e3a548402b3683bfc85bd0d016cea54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start listening for incoming connections.  <a href="#a4e3a548402b3683bfc85bd0d016cea54">More...</a><br /></td></tr>
<tr class="separator:a4e3a548402b3683bfc85bd0d016cea54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76c71ba8ffa9fe007f5a9e3e0c783a4e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a76c71ba8ffa9fe007f5a9e3e0c783a4e">IrOBEX_TransportConnect</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, const char *service)</td></tr>
<tr class="memdesc:a76c71ba8ffa9fe007f5a9e3e0c783a4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect Irda transport.  <a href="#a76c71ba8ffa9fe007f5a9e3e0c783a4e">More...</a><br /></td></tr>
<tr class="separator:a76c71ba8ffa9fe007f5a9e3e0c783a4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8698de633414ee7ee816b59b4160fd6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#aa8698de633414ee7ee816b59b4160fd6">FdOBEX_TransportSetup</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, int rfd, int wfd, int mtu)</td></tr>
<tr class="separator:aa8698de633414ee7ee816b59b4160fd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb0760c9beb7f453ccfeb8906c2166dd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#abb0760c9beb7f453ccfeb8906c2166dd">OBEX_EnumerateInterfaces</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:abb0760c9beb7f453ccfeb8906c2166dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find OBEX interfaces on the system.  <a href="#abb0760c9beb7f453ccfeb8906c2166dd">More...</a><br /></td></tr>
<tr class="separator:abb0760c9beb7f453ccfeb8906c2166dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0df31c95bf973cd2b6211ed08e5bf811"><td class="memItemLeft" align="right" valign="top"><a class="el" href="unionobex__interface__t.html">obex_interface_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a0df31c95bf973cd2b6211ed08e5bf811">OBEX_GetInterfaceByIndex</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, int i)</td></tr>
<tr class="memdesc:a0df31c95bf973cd2b6211ed08e5bf811"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get OBEX interface information.  <a href="#a0df31c95bf973cd2b6211ed08e5bf811">More...</a><br /></td></tr>
<tr class="separator:a0df31c95bf973cd2b6211ed08e5bf811"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66b2a2bf698e19aaf3e9b054ccfd644b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a66b2a2bf698e19aaf3e9b054ccfd644b">OBEX_InterfaceConnect</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self, <a class="el" href="unionobex__interface__t.html">obex_interface_t</a> *intf)</td></tr>
<tr class="memdesc:a66b2a2bf698e19aaf3e9b054ccfd644b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect USB interface.  <a href="#a66b2a2bf698e19aaf3e9b054ccfd644b">More...</a><br /></td></tr>
<tr class="separator:a66b2a2bf698e19aaf3e9b054ccfd644b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e128eea7c7ca7f8d220117bcf1bcbb4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="obex_8h.html#a9e128eea7c7ca7f8d220117bcf1bcbb4">OBEX_FreeInterfaces</a> (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *self)</td></tr>
<tr class="memdesc:a9e128eea7c7ca7f8d220117bcf1bcbb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free memory allocated to OBEX interface structures.  <a href="#a9e128eea7c7ca7f8d220117bcf1bcbb4">More...</a><br /></td></tr>
<tr class="separator:a9e128eea7c7ca7f8d220117bcf1bcbb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>OpenOBEX library - Free implementation of the Object Exchange protocol. </p>
<p>Copyright (C) 1999-2000 Dag Brattli <a href="#" onclick="location.href='mai'+'lto:'+'dag'+'b@'+'cs.'+'ui'+'t.n'+'o'; return false;">dagb@<span style="display: none;">.nosp@m.</span>cs.u<span style="display: none;">.nosp@m.</span>it.no</a> Copyright (C) 1999-2000 Pontus Fuchs <a href="#" onclick="location.href='mai'+'lto:'+'pon'+'tu'+'s.f'+'uc'+'hs@'+'ta'+'cte'+'l.'+'se'; return false;">pontu<span style="display: none;">.nosp@m.</span>s.fu<span style="display: none;">.nosp@m.</span>chs@t<span style="display: none;">.nosp@m.</span>acte<span style="display: none;">.nosp@m.</span>l.se</a> Copyright (C) 2001-2002 Jean Tourrilhes <a href="#" onclick="location.href='mai'+'lto:'+'jt@'+'hp'+'l.h'+'p.'+'com'; return false;">jt@hp<span style="display: none;">.nosp@m.</span>l.hp<span style="display: none;">.nosp@m.</span>.com</a> Copyright (C) 2002-2006 Marcel Holtmann <a href="#" onclick="location.href='mai'+'lto:'+'mar'+'ce'+'l@h'+'ol'+'tma'+'nn'+'.or'+'g'; return false;">marce<span style="display: none;">.nosp@m.</span>l@ho<span style="display: none;">.nosp@m.</span>ltman<span style="display: none;">.nosp@m.</span>n.or<span style="display: none;">.nosp@m.</span>g</a> Copyright (C) 2002-2008 Christian W. Zuckschwerdt <a href="#" onclick="location.href='mai'+'lto:'+'zan'+'y@'+'tri'+'q.'+'net'; return false;">zany@<span style="display: none;">.nosp@m.</span>triq<span style="display: none;">.nosp@m.</span>.net</a> Copyright (C) 2002 Dmitry Kasatkin <a href="#" onclick="location.href='mai'+'lto:'+'dmi'+'tr'+'y.k'+'as'+'atk'+'in'+'@no'+'ki'+'a.c'+'om'; return false;">dmitr<span style="display: none;">.nosp@m.</span>y.ka<span style="display: none;">.nosp@m.</span>satki<span style="display: none;">.nosp@m.</span>n@no<span style="display: none;">.nosp@m.</span>kia.c<span style="display: none;">.nosp@m.</span>om</a> Copyright (C) 2005 Herton Ronaldo Krzesinski <a href="#" onclick="location.href='mai'+'lto:'+'her'+'to'+'n@c'+'on'+'ect'+'iv'+'a.c'+'om'+'.br'; return false;">herto<span style="display: none;">.nosp@m.</span>n@co<span style="display: none;">.nosp@m.</span>necti<span style="display: none;">.nosp@m.</span>va.c<span style="display: none;">.nosp@m.</span>om.br</a> Copyright (C) 2005-2008 Alex Kanavin <a href="#" onclick="location.href='mai'+'lto:'+'ak@'+'se'+'nsi'+'.o'+'rg'; return false;">ak@se<span style="display: none;">.nosp@m.</span>nsi.<span style="display: none;">.nosp@m.</span>org</a> Copyright (C) 2006 Johan Hedberg <a href="#" onclick="location.href='mai'+'lto:'+'joh'+'an'+'.he'+'db'+'erg'+'@n'+'oki'+'a.'+'com'; return false;">johan<span style="display: none;">.nosp@m.</span>.hed<span style="display: none;">.nosp@m.</span>berg@<span style="display: none;">.nosp@m.</span>noki<span style="display: none;">.nosp@m.</span>a.com</a> Copyright (C) 2007-2008 Hendrik Sattler <a href="#" onclick="location.href='mai'+'lto:'+'pos'+'t@'+'hen'+'dr'+'ik-'+'sa'+'ttl'+'er'+'.de'; return false;">post@<span style="display: none;">.nosp@m.</span>hend<span style="display: none;">.nosp@m.</span>rik-s<span style="display: none;">.nosp@m.</span>attl<span style="display: none;">.nosp@m.</span>er.de</a></p>
<p>OpenOBEX is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.</p>
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</p>
<p>You should have received a copy of the GNU Lesser General Public License along with OpenOBEX. If not, see <a href="http://www.gnu.org/">http://www.gnu.org/</a>. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="aacc782566d3c37c57579ec9bc260029d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aacc782566d3c37c57579ec9bc260029d">&#9670;&nbsp;</a></span>obex_event_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* obex_event_t) (<a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *handle, <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *obj, int mode, int event, int <a class="el" href="obex__const_8h.html#aaf94005a907b2ff761fa260a4ad7debb">obex_cmd</a>, int <a class="el" href="obex__const_8h.html#abee03ffce276c0ae217546c9f85292b2">obex_rsp</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a94da9c25cced2e598b617c11404f7a1f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94da9c25cced2e598b617c11404f7a1f">&#9670;&nbsp;</a></span>obex_object_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct obex_object <a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a438ebf629aae07b785e3c1619912aaf8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a438ebf629aae07b785e3c1619912aaf8">&#9670;&nbsp;</a></span>obex_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct obex <a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="aa8698de633414ee7ee816b59b4160fd6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8698de633414ee7ee816b59b4160fd6">&#9670;&nbsp;</a></span>FdOBEX_TransportSetup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int FdOBEX_TransportSetup </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>wfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>mtu</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a4e3a548402b3683bfc85bd0d016cea54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e3a548402b3683bfc85bd0d016cea54">&#9670;&nbsp;</a></span>IrOBEX_ServerRegister()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int IrOBEX_ServerRegister </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>service</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start listening for incoming connections. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">service</td><td>Service to bind to. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 or negative error code on error</dd></dl>
<p>An easier server function to use for IrDA (IrOBEX) only. </p>

</div>
</div>
<a id="a76c71ba8ffa9fe007f5a9e3e0c783a4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76c71ba8ffa9fe007f5a9e3e0c783a4e">&#9670;&nbsp;</a></span>IrOBEX_TransportConnect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int IrOBEX_TransportConnect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>service</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Connect Irda transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">service</td><td>IrIAS service name to connect to </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 or negative error code on error</dd></dl>
<p>An easier connect function to use for IrDA (IrOBEX) only. </p>

</div>
</div>
<a id="a8cb19df8a265c388505c5b8181339652"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cb19df8a265c388505c5b8181339652">&#9670;&nbsp;</a></span>OBEX_CancelRequest()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_CancelRequest </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nice</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Cancel an ongoing operation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">nice</td><td>If true an OBEX Abort will be sent if beeing client or respond with an error if beeing server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error </dd></dl>

</div>
</div>
<a id="aa9880992f2d1e49130ab9a76c87d2a31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9880992f2d1e49130ab9a76c87d2a31">&#9670;&nbsp;</a></span>OBEX_Cleanup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OBEX_Cleanup </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Close down an OBEX instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle</td></tr>
  </table>
  </dd>
</dl>
<p>Disconnects the transport and frees the interface (see <a class="el" href="api_8c.html#a9e128eea7c7ca7f8d220117bcf1bcbb4" title="Free memory allocated to OBEX interface structures. ">OBEX_FreeInterfaces</a>). </p>

</div>
</div>
<a id="a24454492afd6272d033bc21fc103016e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24454492afd6272d033bc21fc103016e">&#9670;&nbsp;</a></span>OBEX_CustomDataFeed()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_CustomDataFeed </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>inputbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>actual</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Feed OBEX with data when using a custom transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">inputbuf</td><td>Pointer to custom data </td></tr>
    <tr><td class="paramname">actual</td><td>Length of buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error </dd></dl>

</div>
</div>
<a id="abb0760c9beb7f453ccfeb8906c2166dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb0760c9beb7f453ccfeb8906c2166dd">&#9670;&nbsp;</a></span>OBEX_EnumerateInterfaces()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_EnumerateInterfaces </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Find OBEX interfaces on the system. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the number of OBEX interfaces. </dd></dl>

</div>
</div>
<a id="a9e128eea7c7ca7f8d220117bcf1bcbb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e128eea7c7ca7f8d220117bcf1bcbb4">&#9670;&nbsp;</a></span>OBEX_FreeInterfaces()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OBEX_FreeInterfaces </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free memory allocated to OBEX interface structures. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle</td></tr>
  </table>
  </dd>
</dl>
<p>Frees memory allocated to OBEX interface structures after it has been allocated by OBEX_EnumerateInterfaces. </p>

</div>
</div>
<a id="a804132d73f70856a3c9183d66ccb2bfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a804132d73f70856a3c9183d66ccb2bfa">&#9670;&nbsp;</a></span>OBEX_GetCustomData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* OBEX_GetCustomData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read the customdata from an OBEX handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>custom transport data, NULL on error </dd></dl>

</div>
</div>
<a id="af171da5bbb3fbaa48783f3944f465a2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af171da5bbb3fbaa48783f3944f465a2a">&#9670;&nbsp;</a></span>OBEX_GetDataDirection()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="obex__const_8h.html#a9c1ba5023d23929d97a969d7d4ab794a">obex_data_direction</a> OBEX_GetDataDirection </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determine data direction of <a class="el" href="api_8c.html#a2107fbb4b60650b5d1077b8ceabe6508" title="Let the OBEX parser do some work. ">OBEX_Work()</a> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle</td></tr>
  </table>
  </dd>
</dl>
<p>Use this to achieve better integration of <a class="el" href="api_8c.html#a2107fbb4b60650b5d1077b8ceabe6508" title="Let the OBEX parser do some work. ">OBEX_Work()</a> into mainloops. You should call this after each call of <a class="el" href="api_8c.html#a2107fbb4b60650b5d1077b8ceabe6508" title="Let the OBEX parser do some work. ">OBEX_Work()</a>. If <a class="el" href="obex__const_8h.html#a9c1ba5023d23929d97a969d7d4ab794aa261d3a987cdf347f8838ba774225a5ac">OBEX_DATA_NONE</a> is returned, it depends on your event callback when to re-enable mainloop events. </p>

</div>
</div>
<a id="aee31f7c60c0b8ebccc082cc0cc68c3ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee31f7c60c0b8ebccc082cc0cc68c3ac">&#9670;&nbsp;</a></span>OBEX_GetFD()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_GetFD </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get transport file descriptor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>file descriptor of the transport, -1 on error</dd></dl>
<p>Returns the file descriptor of the transport or -1 on error. Note that not all transports have a file descriptor, especially USB and custom transports do not.</p>
<p>The returned filehandle can be used to do select() on, before calling <a class="el" href="api_8c.html#ab662cf38ff64ca901ecc0d6431b93cc0" title="Let the OBEX parser do some work. ">OBEX_HandleInput()</a></p>
<p>There is one subtelty about this function. When the OBEX connection is established, it returns the connection filedescriptor, while for an unconnected server it will return the listening filedescriptor. This mean that after receiving an incomming connection, you need to call this function again. </p>

</div>
</div>
<a id="a0df31c95bf973cd2b6211ed08e5bf811"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0df31c95bf973cd2b6211ed08e5bf811">&#9670;&nbsp;</a></span>OBEX_GetInterfaceByIndex()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="unionobex__interface__t.html">obex_interface_t</a>* OBEX_GetInterfaceByIndex </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get OBEX interface information. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">i</td><td>interface number </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>OBEX interface information. </dd></dl>

</div>
</div>
<a id="a4b614a1b4f50c9ddb10ff5c45300a26d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b614a1b4f50c9ddb10ff5c45300a26d">&#9670;&nbsp;</a></span>OBEX_GetUserData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* OBEX_GetUserData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read the userdata from an OBEX handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the userdata</dd></dl>
<p>Returns userdata set with <a class="el" href="api_8c.html#a4b2d9077c90125efa0a17296d6352268" title="Set userdata of an OBEX handle. ">OBEX_SetUserData</a>. </p>

</div>
</div>
<a id="ab662cf38ff64ca901ecc0d6431b93cc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab662cf38ff64ca901ecc0d6431b93cc0">&#9670;&nbsp;</a></span>OBEX_HandleInput()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_HandleInput </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Let the OBEX parser do some work. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">timeout</td><td>Maximum time to wait in seconds (-1 for infinite) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error, 0 on timeout, positive on success</dd></dl>
<p>Deprecated.</p>
<p>Let the OBEX parser read and process incoming data and send the response.</p>
<p>The timeout parameter is only for the reading part, preparing and sending can take any amount of time. </p>

</div>
</div>
<a id="a2e36489f991940401eb48320d63f3844"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2e36489f991940401eb48320d63f3844">&#9670;&nbsp;</a></span>OBEX_Init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a>* OBEX_Init </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>transport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#aacc782566d3c37c57579ec9bc260029d">obex_event_t</a>&#160;</td>
          <td class="paramname"><em>eventcb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize OBEX. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">transport</td><td>Which transport to use. The following transports are available :<ul>
<li><a class="el" href="obex__const_8h.html#a2dcfea2fecb45feae2acfcc3492a8305ad16fe67e8514e50f6966fcebb6913603" title="Infrared. ">OBEX_TRANS_IRDA</a> : Use regular IrDA socket (need an IrDA stack)</li>
<li><a class="el" href="obex__const_8h.html#a2dcfea2fecb45feae2acfcc3492a8305ac9c3762e1a0240a172d857d6362ad83c" title="TCP over IPv4/v6. ">OBEX_TRANS_INET</a> : Use regular TCP/IP socket</li>
<li><a class="el" href="obex__const_8h.html#a2dcfea2fecb45feae2acfcc3492a8305a53c675fa8b53f5a88eda1b3d660a0ae8" title="Custom transport with callbacks. ">OBEX_TRANS_CUSTOM</a> : Use user provided transport, you must register your own transport with <a class="el" href="api_8c.html#a6c9b9025540ec3b229a71220f89e0c1d" title="Register a custom transport. ">OBEX_RegisterCTransport()</a></li>
<li><a class="el" href="obex__const_8h.html#a2dcfea2fecb45feae2acfcc3492a8305a28139f91349db3e048c3a7168283df8a" title="Bluetooth RFCOMM. ">OBEX_TRANS_BLUETOOTH</a>: Use regular Bluetooth RFCOMM socket</li>
<li><a class="el" href="obex__const_8h.html#a2dcfea2fecb45feae2acfcc3492a8305ace62947eddb144d01435d4ed3787d3c7" title="USB CDC OBEX. ">OBEX_TRANS_USB</a>: Use USB transport (libusb needed) </li>
</ul>
</td></tr>
    <tr><td class="paramname">eventcb</td><td>Function pointer to your event callback. See <a class="el" href="obex_8h.html" title="OpenOBEX library - Free implementation of the Object Exchange protocol. ">obex.h</a> for prototype of this callback. </td></tr>
    <tr><td class="paramname">flags</td><td>Bitmask of flags. The following flags are available :<ul>
<li><a class="el" href="obex__const_8h.html#a9829f3a39fd9f395ec9770028f6a6e53" title="Keep the server alive. ">OBEX_FL_KEEPSERVER</a> : Keep the server alive after incomming request</li>
<li><a class="el" href="obex__const_8h.html#a915c12c47e602fbb925c939a0409ee50" title="Filter devices based on hint bit. ">OBEX_FL_FILTERHINT</a> : Filter target devices based on Obex hint bit</li>
<li><a class="el" href="obex__const_8h.html#a36959e3ba546d176f4349263bf7ce947" title="Filter devices based on IAS entry. ">OBEX_FL_FILTERIAS</a> : Filter target devices based on IAS entry</li>
<li><a class="el" href="obex__const_8h.html#a3e53faa41fb98d412bf443cfee8f6151" title="Set CLOEXEC flag on file descriptors. ">OBEX_FL_CLOEXEC</a> : Open all sockets with SO_CLOEXEC set</li>
<li><a class="el" href="obex__const_8h.html#aee3617d209025e5084554963818aeb82" title="Set the NONBLOCK flag on file descriptors. ">OBEX_FL_NONBLOCK</a> : Open all sockets non-blocking </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an OBEX handle or NULL on error. </dd></dl>

</div>
</div>
<a id="a66b2a2bf698e19aaf3e9b054ccfd644b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66b2a2bf698e19aaf3e9b054ccfd644b">&#9670;&nbsp;</a></span>OBEX_InterfaceConnect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_InterfaceConnect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionobex__interface__t.html">obex_interface_t</a> *&#160;</td>
          <td class="paramname"><em>intf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Connect USB interface. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">intf</td><td>USB interface to connect to </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 or negative error code on error</dd></dl>
<p>An easier connect function to connect to a discovered interface (currently USB OBEX only). </p>

</div>
</div>
<a id="a63eb221ab7ed3bd8a4b44f33d48b80ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63eb221ab7ed3bd8a4b44f33d48b80ca">&#9670;&nbsp;</a></span>OBEX_ObjectAddHeader()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectAddHeader </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>hi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionobex__headerdata__t.html">obex_headerdata_t</a>&#160;</td>
          <td class="paramname"><em>hv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>hv_size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Attach a header to an object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">object</td><td>OBEX object </td></tr>
    <tr><td class="paramname">hi</td><td>Header identifier </td></tr>
    <tr><td class="paramname">hv</td><td>Header value </td></tr>
    <tr><td class="paramname">hv_size</td><td>Header size </td></tr>
    <tr><td class="paramname">flags</td><td>See <a class="el" href="obex_8h.html" title="OpenOBEX library - Free implementation of the Object Exchange protocol. ">obex.h</a> for possible values </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error</dd></dl>
<p>Add a new header to an object.</p>
<p>If you want all headers to fit in one packet, use the flag <a class="el" href="obex__const_8h.html#ae679a233664885d0feeb58ded5cb0dba" title="This header must fit in one packet. ">OBEX_FL_FIT_ONE_PACKET</a> on all headers you add to an object.</p>
<p>To stream a body add a body header with hv.bs = NULL and set the flag <a class="el" href="obex__const_8h.html#af68574f18bf8e20cbd6a22546057336e" title="Start of streaming body. ">OBEX_FL_STREAM_START</a>. You will now get <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63a8d86ae2fccdfe94259c3e8c8b60728e2" title="Need to feed more data when sending a stream. ">OBEX_EV_STREAMEMPTY</a> events as soon as the the parser wants you to feed it with more data.</p>
<p>When you get an <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63a8d86ae2fccdfe94259c3e8c8b60728e2" title="Need to feed more data when sending a stream. ">OBEX_EV_STREAMEMPTY</a> event give the parser some data by adding a body-header and set the flag <a class="el" href="obex__const_8h.html#a0c385bb8823467db42ad01c1a78fa4cf" title="Set data for body stream. ">OBEX_FL_STREAM_DATA</a>. When you have no more data to send set the flag <a class="el" href="obex__const_8h.html#aca7ceb89b1734c86b96e0c408b1aa2a4" title="Set data (or no data) for body stream and finish it. ">OBEX_FL_STREAM_DATAEND</a> instead.</p>
<p>After adding a header you are free to do whatever you want with the buffer if you are NOT streaming. If you are streaming you may not touch the buffer until you get another <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63a8d86ae2fccdfe94259c3e8c8b60728e2" title="Need to feed more data when sending a stream. ">OBEX_EV_STREAMEMPTY</a> or until the request finishes.</p>
<p>The headers will be sent in the order you add them. </p>

</div>
</div>
<a id="ac106d21f7e67d584bf61ecbde52e5974"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac106d21f7e67d584bf61ecbde52e5974">&#9670;&nbsp;</a></span>OBEX_ObjectDelete()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectDelete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete an OBEX object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">object</td><td>object to delete. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error</dd></dl>
<p>Note that as soon as you have passed an object to the lib using <a class="el" href="api_8c.html#a4876bfb227270da645db3d7aab9052e7" title="Schedule a request (as client). ">OBEX_Request()</a>, you shall not delete it yourself. </p>

</div>
</div>
<a id="aca8edad4a441f0a3d2fd68ea660554be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca8edad4a441f0a3d2fd68ea660554be">&#9670;&nbsp;</a></span>OBEX_ObjectGetCommand()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectGetCommand </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the OBEX commmand of an object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX context </td></tr>
    <tr><td class="paramname">object</td><td>OBEX object (or NULL to access the current object) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error</dd></dl>
<p>Call this function to get the OBEX command of an object. </p>

</div>
</div>
<a id="a7bbc53a3d1803c101333f9642932bf30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7bbc53a3d1803c101333f9642932bf30">&#9670;&nbsp;</a></span>OBEX_ObjectGetNextHeader()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectGetNextHeader </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>hi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="unionobex__headerdata__t.html">obex_headerdata_t</a> *&#160;</td>
          <td class="paramname"><em>hv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>hv_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get next available header from an object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle (ignored) </td></tr>
    <tr><td class="paramname">object</td><td>OBEX object </td></tr>
    <tr><td class="paramname">hi</td><td>Pointer to header identifier </td></tr>
    <tr><td class="paramname">hv</td><td>Pointer to hv </td></tr>
    <tr><td class="paramname">hv_size</td><td>Pointer to hv_size </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 when no more headers are available, -1 on error</dd></dl>
<p>Returns 0 when no more headers are available.</p>
<p>All headers are read-only.</p>
<p>You will get the headers in the received order. </p>

</div>
</div>
<a id="abfac4c6cdd331a3b068ff74b5a458739"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abfac4c6cdd331a3b068ff74b5a458739">&#9670;&nbsp;</a></span>OBEX_ObjectGetNonHdrData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectGetNonHdrData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t **&#160;</td>
          <td class="paramname"><em>buffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get any data which was before headers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>OBEX object </td></tr>
    <tr><td class="paramname">buffer</td><td>Pointer to a pointer which will point to a read-only buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size of the buffer or -1 for error </dd></dl>

</div>
</div>
<a id="a067f351c3162b90686f4830ad16b3edf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a067f351c3162b90686f4830ad16b3edf">&#9670;&nbsp;</a></span>OBEX_ObjectGetSpace()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectGetSpace </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get available space in object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">object</td><td>OBEX object to query </td></tr>
    <tr><td class="paramname">flags</td><td>OBEX_FL_FIT_ONE_PACKET or 0 </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error</dd></dl>
<p>Returns the available space in a given obex object.</p>
<p>This can be useful e.g. if the caller wants to check the size of the biggest body header that can be added to the current packet. </p>

</div>
</div>
<a id="a9a33f0f2f2f0228c5734f921bf8f27a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a33f0f2f2f0228c5734f921bf8f27a7">&#9670;&nbsp;</a></span>OBEX_ObjectNew()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a>* OBEX_ObjectNew </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>cmd</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new OBEX Object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">cmd</td><td>command of object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to a new OBEX Object, NULL on error </dd></dl>

</div>
</div>
<a id="a33d82538e2048af047c35e1112c3aa3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33d82538e2048af047c35e1112c3aa3e">&#9670;&nbsp;</a></span>OBEX_ObjectReadStream()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectReadStream </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t **&#160;</td>
          <td class="paramname"><em>buf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read data from body stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">object</td><td>OBEX object (ignored) </td></tr>
    <tr><td class="paramname">buf</td><td>A pointer to a pointer which this function will set to a buffer which shall be read (and ONLY read) after this function returns. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of bytes in buffer, or 0 for end-of-stream, -1 on error</dd></dl>
<p>To recieve the body as a stream call this function with buf = NULL as soon as you get an <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63aedac0f30e17b5e67cf7f3dded76c8eba" title="An incoming request is about to come. ">OBEX_EV_REQHINT</a> event.</p>
<p>You will now recieve <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63a1a2c1f7accaa8c11f09ebd43583e5f54" title="Time to pick up data when receiving a stream. ">OBEX_EV_STREAMAVAIL</a> events when data is available for you. Call this function to get the data.</p>
<p>Note! When receiving a stream data is not buffered so if you don't call this function when you get an <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63a1a2c1f7accaa8c11f09ebd43583e5f54" title="Time to pick up data when receiving a stream. ">OBEX_EV_STREAMAVAIL</a> event data will be lost. </p>

</div>
</div>
<a id="a90c49cdebaece8eee3ac0519c172784c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a90c49cdebaece8eee3ac0519c172784c">&#9670;&nbsp;</a></span>OBEX_ObjectReParseHeaders()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectReParseHeaders </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Allow the user to parse again the rx headers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle (ignored) </td></tr>
    <tr><td class="paramname">object</td><td>OBEX object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 if previous parsing not completed, -1 on error</dd></dl>
<p>Next call to <a class="el" href="api_8c.html#a7bbc53a3d1803c101333f9642932bf30" title="Get next available header from an object. ">OBEX_ObjectGetNextHeader()</a> will return the first received header. </p>

</div>
</div>
<a id="a96c673c11d39b599974b27b8154f209f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96c673c11d39b599974b27b8154f209f">&#9670;&nbsp;</a></span>OBEX_ObjectSetHdrOffset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectSetHdrOffset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>offset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set headeroffset. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>OBEX object </td></tr>
    <tr><td class="paramname">offset</td><td>Desired offset </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, -1 on error</dd></dl>
<p>Call this function when you get a OBEX_EV_REQHINT and you know that the command has data before the headers comes. You do NOT need to use this function on Connect and SetPath, they are handled automatically. </p>

</div>
</div>
<a id="ab2c24cbfcf349b03e4be15f70a8c4c6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2c24cbfcf349b03e4be15f70a8c4c6c">&#9670;&nbsp;</a></span>OBEX_ObjectSetNonHdrData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectSetNonHdrData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set data to send before headers. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>OBEX object </td></tr>
    <tr><td class="paramname">buffer</td><td>Data to send </td></tr>
    <tr><td class="paramname">len</td><td>Length to data </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, -1 on error</dd></dl>
<p>Some commands (notably SetPath) send data before headers. Use this function to set this data. </p>

</div>
</div>
<a id="ad3080b899e6a3d2b5e4afd906303c7d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3080b899e6a3d2b5e4afd906303c7d7">&#9670;&nbsp;</a></span>OBEX_ObjectSetRsp()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ObjectSetRsp </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>rsp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>lastrsp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the response to a received request. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>OBEX object </td></tr>
    <tr><td class="paramname">rsp</td><td>Respose code in non-last packets </td></tr>
    <tr><td class="paramname">lastrsp</td><td>Response code in last packet </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error </dd></dl>

</div>
</div>
<a id="a6c9b9025540ec3b229a71220f89e0c1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c9b9025540ec3b229a71220f89e0c1d">&#9670;&nbsp;</a></span>OBEX_RegisterCTransport()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_RegisterCTransport </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structobex__ctrans__t.html">obex_ctrans_t</a> *&#160;</td>
          <td class="paramname"><em>ctrans</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a custom transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">ctrans</td><td>Structure with callbacks to transport operations (see <a class="el" href="obex__const_8h.html" title="OpenOBEX library - Free implementation of the Object Exchange protocol. ">obex_const.h</a> for details) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error</dd></dl>
<p>Call this function directly after <a class="el" href="api_8c.html#a2e36489f991940401eb48320d63f3844" title="Initialize OBEX. ">OBEX_Init</a> if you are using a custom transport. </p>

</div>
</div>
<a id="a4876bfb227270da645db3d7aab9052e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4876bfb227270da645db3d7aab9052e7">&#9670;&nbsp;</a></span>OBEX_Request()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_Request </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Schedule a request (as client). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">object</td><td>Object containing request </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success or a negative error code on failure (-EBUSY, -EINVAL, -EIO) </dd></dl>

</div>
</div>
<a id="a818d55b231be7e1645498e6041aae762"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a818d55b231be7e1645498e6041aae762">&#9670;&nbsp;</a></span>OBEX_ResponseToString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* OBEX_ResponseToString </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rsp</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a human understandable string from a response-code. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rsp</td><td>Response code. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>static response code string</dd></dl>
<p>The returned string must not be freed. If the response code is unknown, the string "Unknown response" will be returned. </p>

</div>
</div>
<a id="a622cff3dfa73c80a8118d9f9fe6686b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a622cff3dfa73c80a8118d9f9fe6686b0">&#9670;&nbsp;</a></span>OBEX_ResumeRequest()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ResumeRequest </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Resume transfer of an object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error </dd></dl>

</div>
</div>
<a id="a01d04dd9295839906ca8a5a32f2db60d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a01d04dd9295839906ca8a5a32f2db60d">&#9670;&nbsp;</a></span>OBEX_ServerAccept()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a>* OBEX_ServerAccept </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#aacc782566d3c37c57579ec9bc260029d">obex_event_t</a>&#160;</td>
          <td class="paramname"><em>eventcb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Accept an incoming connection. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">server</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">eventcb</td><td>Event callback for client (use NULL for same as server) </td></tr>
    <tr><td class="paramname">data</td><td>Userdata for client (use NULL for same as server) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the client instance or NULL on error</dd></dl>
<p>Create a new OBEX instance to handle the incomming connection. The old OBEX instance will continue to listen for new connections. The two OBEX instances become totally independant from each other.</p>
<p>This function should be called after the library generates an <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63a0162633e1de66f721d6ee45a662e5873" title="Connection accepted. ">OBEX_EV_ACCEPTHINT</a> event to the user, but before the user start to pull data out of the incomming connection.</p>
<p>Using this function also requires that the OBEX handle was created with the <a class="el" href="obex__const_8h.html#a9829f3a39fd9f395ec9770028f6a6e53" title="Keep the server alive. ">OBEX_FL_KEEPSERVER</a> flag set while calling <a class="el" href="api_8c.html#a2e36489f991940401eb48320d63f3844" title="Initialize OBEX. ">OBEX_Init()</a>. </p>

</div>
</div>
<a id="a672c6e40dd8fb3a57aaa7c92d83f54b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a672c6e40dd8fb3a57aaa7c92d83f54b0">&#9670;&nbsp;</a></span>OBEX_ServerRegister()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_ServerRegister </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct sockaddr *&#160;</td>
          <td class="paramname"><em>saddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>addrlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start listening for incoming connections. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">saddr</td><td>Local address to bind to or NULL </td></tr>
    <tr><td class="paramname">addrlen</td><td>Length of address </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error</dd></dl>
<p>Bind a server socket to an Obex service. Common transport have specialised version of this function. If you want to call the listen callback of the custom transport, use NULL for saddr and 0 for addrlen. </p>

</div>
</div>
<a id="a21e1f70c745ba1b1c0258e5671f09bf0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21e1f70c745ba1b1c0258e5671f09bf0">&#9670;&nbsp;</a></span>OBEX_SetCustomData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_SetCustomData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set customdata of an OBEX handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">data</td><td>Custom Transport data </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, -1 on error</dd></dl>
<p>Note : this call is *reserved* to the Custom Transport and should not be use by the user/client. It allow to update the Custom Transport data originally set via <a class="el" href="api_8c.html#a6c9b9025540ec3b229a71220f89e0c1d" title="Register a custom transport. ">OBEX_RegisterCTransport()</a>. The Custom Transport data (or instance handle) is used to store data relative to the specific instance (i.e. connection), such as file descriptors, offsets and others, so that the Custom Transport can manage multiple connections transparently (i.e. without a lookup table).</p><ul>
<li>Jean II </li>
</ul>

</div>
</div>
<a id="ab8f928392a67bd87b06bf5e7ae78d25d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8f928392a67bd87b06bf5e7ae78d25d">&#9670;&nbsp;</a></span>OBEX_SetReponseMode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OBEX_SetReponseMode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="obex__const_8h.html#a902cdff2e09c4c4fac912450f26a2d47">obex_rsp_mode</a>&#160;</td>
          <td class="paramname"><em>rsp_mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the OBEX response mode. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX context </td></tr>
    <tr><td class="paramname">rsp_mode</td><td>see OBEX_RSP_MODE_*</td></tr>
  </table>
  </dd>
</dl>
<p>If you want any mode other than default (<a class="el" href="obex__const_8h.html#a902cdff2e09c4c4fac912450f26a2d47aea3d051b81156d331f80046549df5feb" title="normal response mode ">OBEX_RSP_MODE_NORMAL</a>), you have to call this function. If you want it to affect the current object, you need to call it at the first <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63a1b84ef36b2e759e29b38a6f162452b21" title="Progress has been made. ">OBEX_EV_PROGRESS</a> (as client) or at the <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63aedac0f30e17b5e67cf7f3dded76c8eba" title="An incoming request is about to come. ">OBEX_EV_REQHINT</a> or <a class="el" href="obex__const_8h.html#a7f1fb34cd1d0bd6f013ed2888bbbfe63a7e210a17853ec0712107cfa50ae232f8" title="First packet of an incoming request has been parsed. ">OBEX_EV_REQCHECK</a> events (as server). </p>

</div>
</div>
<a id="a4aa68f288d49a1c9a9e8cad22e2c6d6f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4aa68f288d49a1c9a9e8cad22e2c6d6f">&#9670;&nbsp;</a></span>OBEX_SetTimeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OBEX_SetTimeout </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int64_t&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the timeout for read/write operations if supported by the underlying transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">timeout</td><td>Maximum time to wait in milliseconds (-1 for infinite) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa113f52abc1574dcd5beeb4f5b36fbf7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa113f52abc1574dcd5beeb4f5b36fbf7">&#9670;&nbsp;</a></span>OBEX_SetTransportMTU()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_SetTransportMTU </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>mtu_rx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>mtu_tx_max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set MTU to be used for receive and transmit. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">mtu_rx</td><td>maximum receive transport packet size </td></tr>
    <tr><td class="paramname">mtu_tx_max</td><td>maximum transmit transport packet size negociated </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 or negative error code on error</dd></dl>
<p>Changing those values can increase the performance of the underlying transport, but will increase memory consumption and latency (especially abort latency), and may trigger bugs in buggy transport. This need to be set *before* establishing the connection. </p>

</div>
</div>
<a id="a4df8b440b71b08192f8c6834b162c5ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4df8b440b71b08192f8c6834b162c5ad">&#9670;&nbsp;</a></span>OBEX_SetUserCallBack()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OBEX_SetUserCallBack </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#aacc782566d3c37c57579ec9bc260029d">obex_event_t</a>&#160;</td>
          <td class="paramname"><em>eventcb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Change user callback on an OBEX handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">eventcb</td><td>Function pointer to your new event callback. </td></tr>
    <tr><td class="paramname">data</td><td>Pointer to the new user data to pass to the new callback (optional) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4b2d9077c90125efa0a17296d6352268"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b2d9077c90125efa0a17296d6352268">&#9670;&nbsp;</a></span>OBEX_SetUserData()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void OBEX_SetUserData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set userdata of an OBEX handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">data</td><td>It's all up to you! </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a8c273ceaf8ad777672ad83e61bbfd354"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c273ceaf8ad777672ad83e61bbfd354">&#9670;&nbsp;</a></span>OBEX_SuspendRequest()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_SuspendRequest </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a94da9c25cced2e598b617c11404f7a1f">obex_object_t</a> *&#160;</td>
          <td class="paramname"><em>object</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Suspend transfer of an object. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">object</td><td>object to suspend (NULL to suspend currently transfered object) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error </dd></dl>

</div>
</div>
<a id="a39e7dba23fcdd9afeff364b9296a71a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39e7dba23fcdd9afeff364b9296a71a2">&#9670;&nbsp;</a></span>OBEX_TransportConnect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_TransportConnect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct sockaddr *&#160;</td>
          <td class="paramname"><em>saddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>addrlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Try to connect to peer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">saddr</td><td>Address to connect to </td></tr>
    <tr><td class="paramname">addrlen</td><td>Length of address </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error </dd></dl>

</div>
</div>
<a id="ac8d944622d69fc677b9d7caa0ba60913"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8d944622d69fc677b9d7caa0ba60913">&#9670;&nbsp;</a></span>OBEX_TransportDisconnect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_TransportDisconnect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disconnect transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error </dd></dl>

</div>
</div>
<a id="a2107fbb4b60650b5d1077b8ceabe6508"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2107fbb4b60650b5d1077b8ceabe6508">&#9670;&nbsp;</a></span>OBEX_Work()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int OBEX_Work </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Let the OBEX parser do some work. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error, 0 on timeout, positive on success</dd></dl>
<p>Let the OBEX parser read and process incoming data, or prepare and send outgoing data.</p>
<p>When a request has been sent (client) or you are waiting for an incoming request (server) you should call this function until the request has finished. </p>

</div>
</div>
<a id="ae8059439c9ebb3671c69401a36e3d912"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8059439c9ebb3671c69401a36e3d912">&#9670;&nbsp;</a></span>TcpOBEX_ServerRegister()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TcpOBEX_ServerRegister </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct sockaddr *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>addrlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start listening for incoming TCP connections. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">addr</td><td>Address to bind to (*:650 if NULL) </td></tr>
    <tr><td class="paramname">addrlen</td><td>Length of address structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error</dd></dl>
<p>An easier server function to use for TCP/IP (TcpOBEX) only. It supports IPv4 (AF_INET) and IPv6 (AF_INET6). Note: INADDR_ANY will get mapped to IN6ADDR_ANY and using port 0 will select the default OBEX port. </p>

</div>
</div>
<a id="a10baf7beef2e62f5989a91c9e9655ed9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10baf7beef2e62f5989a91c9e9655ed9">&#9670;&nbsp;</a></span>TcpOBEX_TransportConnect()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int TcpOBEX_TransportConnect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="obex_8h.html#a438ebf629aae07b785e3c1619912aaf8">obex_t</a> *&#160;</td>
          <td class="paramname"><em>self</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct sockaddr *&#160;</td>
          <td class="paramname"><em>addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>addrlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Connect TCP transport. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>OBEX handle </td></tr>
    <tr><td class="paramname">addr</td><td>Address to connect to ([::1]:650 if NULL) </td></tr>
    <tr><td class="paramname">addrlen</td><td>Length of address structure </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>-1 on error</dd></dl>
<p>An easier connect function to use for TCP/IP (TcpOBEX) only. It supports IPv4 (AF_INET) and IPv6 (AF_INET6). </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>