<html> <head> <title>Eet: Helper function to use eet over a network link</title> <meta http-equiv="content-type" content="text/html;charset=UTF-8"> <meta name="author" content="Andres Blanc" > <link rel="icon" href="img/favicon.png" type="image/x-icon"> <link rel="shortcut icon" href="img/favicon.png" type="image/x-icon"> <link rel="icon" href="img/favicon.png" type="image/ico"> <link rel="shortcut icon" href="img/favicon.png" type="image/ico"> <link rel="stylesheet" type="text/css" media="screen" href="e.css"> <link rel="stylesheet" type="text/css" media="screen" href="edoxy.css"> </head> <body> <div id="container"> <div id="header"> <div class="layout"> <h1><span>Enlightenment</span></h1> <h2><span>Beauty at your fingertips</span></h2> <div class="menu-container"> <div class="menu"> <ul> <li class="current"><a href="http://web.enlightenment.org/p.php?p=docs">Docs</a></li> <li><a href="http://trac.enlightenment.org/e">Tracker</a></li> <li><a href="http://www.enlightenment.org/p.php?p=contact">Contact</a></li> <li><a href="http://www.enlightenment.org/p.php?p=contribute">Contribute</a></li> <li><a href="http://www.enlightenment.org/p.php?p=support">Support</a></li> <li><a href="http://www.enlightenment.org/p.php?p=download">Download</a></li> <li><a href="http://www.enlightenment.org/p.php?p=about">About</a></li> <li><a href="http://www.enlightenment.org/p.php?p=news">News</a></li> <li><a href="http://www.enlightenment.org/">Home</a></li> </ul> </div> </div> <div class="doxytitle"> Eet Documentation <small>at 2 Jul 2010</small> </div> <div class="menu-container"> <div class="submenu"> <ul class="current"> <li><a href="Examples.html">Examples</a></li> <li><a href="files.html">Files</a></li> <li><a href="modules.html">Modules</a></li> <li><a href="globals.html">Globals</a></li> <li><a href="pages.html">Related Pages</a></li> <li class="current"><a href="index.html">Main Page</a></li> </ul> </div> </div> <div class="clear"></div> </div> </div> <div id="content"> <div class="layout"> <!-- Generated by Doxygen 1.6.2-20100208 --> <div class="contents"> <h1>Helper function to use eet over a network link</h1> <p>Function that reconstruct and prepare packet of <a class="el" href="group__Eet__Data__Group.html">Eet Data Serialization</a> to be send. <a href="#_details">More...</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga74fdc0339a17a94ce451e5a9870a66f4"></a><!-- doxytag: member="Eet_Connection_Group::Eet_Connection" ref="ga74fdc0339a17a94ce451e5a9870a66f4" args="" --> typedef struct _Eet_Connection </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Opaque handle to track paquet for a specific connection. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5102e63d70331d6a5ffb87d42a8ed401"></a><!-- doxytag: member="Eet_Connection_Group::Eet_Read_Cb" ref="ga5102e63d70331d6a5ffb87d42a8ed401" args="(const void *eet_data, size_t size, void *user_data)" --> typedef Eina_Bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Eet__Connection__Group.html#ga5102e63d70331d6a5ffb87d42a8ed401">Eet_Read_Cb</a> (const void *eet_data, size_t size, void *user_data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Called back when an <a class="el" href="group__Eet__Data__Group.html">Eet Data Serialization</a> has been received completly and could be used. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4e0c17177596c1ee1cecda84056ab45b"></a><!-- doxytag: member="Eet_Connection_Group::Eet_Write_Cb" ref="ga4e0c17177596c1ee1cecda84056ab45b" args="(const void *data, size_t size, void *user_data)" --> typedef Eina_Bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Eet__Connection__Group.html#ga4e0c17177596c1ee1cecda84056ab45b">Eet_Write_Cb</a> (const void *data, size_t size, void *user_data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Called back when a packet containing <a class="el" href="group__Eet__Data__Group.html">Eet Data Serialization</a> data is ready to be send. <br/></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">EAPI <a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Eet__Connection__Group.html#gad6e015fb8184ede006af9939311e04ca">eet_connection_new</a> (<a class="el" href="group__Eet__Connection__Group.html#ga5102e63d70331d6a5ffb87d42a8ed401">Eet_Read_Cb</a> *eet_read_cb, <a class="el" href="group__Eet__Connection__Group.html#ga4e0c17177596c1ee1cecda84056ab45b">Eet_Write_Cb</a> *eet_write_cb, const void *user_data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Instanciate a new connection to track. <a href="#gad6e015fb8184ede006af9939311e04ca"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">EAPI int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Eet__Connection__Group.html#gad862fb515beabce583dd60d10a78011f">eet_connection_received</a> (<a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a> *conn, const void *data, size_t size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Process a raw packet received over the link conn Connection handler to track. <a href="#gad862fb515beabce583dd60d10a78011f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">EAPI Eina_Bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Eet__Connection__Group.html#gacd2289a85daa867e290a5f3e0e0d492d">eet_connection_send</a> (<a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a> *conn, <a class="el" href="group__Eet__Data__Group.html#ga4baec0e840012480a0958c5c3bca276d">Eet_Data_Descriptor</a> *edd, const void *data_in, const char *cipher_key)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a complex structure and prepare it to be send. <a href="#gacd2289a85daa867e290a5f3e0e0d492d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">EAPI Eina_Bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Eet__Connection__Group.html#ga3e9d92c3bffdace3fcb0e6de04fea59a">eet_connection_node_send</a> (<a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a> *conn, <a class="el" href="group__Eet__Node__Group.html#gaf589647d3f0fb3e3d03a5c42cd23f51c">Eet_Node</a> *node, const char *cipher_key)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert a Eet_Node tree and prepare it to be send. <a href="#ga3e9d92c3bffdace3fcb0e6de04fea59a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">EAPI void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Eet__Connection__Group.html#gad2f7b44fac8b9ad475db133c1c872d9e">eet_connection_close</a> (<a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a> *conn, Eina_Bool *on_going)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Close a connection and lost its track. <a href="#gad2f7b44fac8b9ad475db133c1c872d9e"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Function that reconstruct and prepare packet of <a class="el" href="group__Eet__Data__Group.html">Eet Data Serialization</a> to be send. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="gad2f7b44fac8b9ad475db133c1c872d9e"></a><!-- doxytag: member="Eet.h::eet_connection_close" ref="gad2f7b44fac8b9ad475db133c1c872d9e" args="(Eet_Connection *conn, Eina_Bool *on_going)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">EAPI void* eet_connection_close </td> <td>(</td> <td class="paramtype"><a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a> * </td> <td class="paramname"> <em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">Eina_Bool * </td> <td class="paramname"> <em>on_going</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Close a connection and lost its track. </p> <p>conn Connection handler to close. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>on_going</em> </td><td>Signal if a partial packet wasn't completed. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the user_data passed to both callback.</dd></dl> <dl class="since"><dt><b>Since:</b></dt><dd>1.2.4 </dd></dl> </div> </div> <a class="anchor" id="gad6e015fb8184ede006af9939311e04ca"></a><!-- doxytag: member="Eet.h::eet_connection_new" ref="gad6e015fb8184ede006af9939311e04ca" args="(Eet_Read_Cb *eet_read_cb, Eet_Write_Cb *eet_write_cb, const void *user_data)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">EAPI <a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a>* eet_connection_new </td> <td>(</td> <td class="paramtype"><a class="el" href="group__Eet__Connection__Group.html#ga5102e63d70331d6a5ffb87d42a8ed401">Eet_Read_Cb</a> * </td> <td class="paramname"> <em>eet_read_cb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Eet__Connection__Group.html#ga4e0c17177596c1ee1cecda84056ab45b">Eet_Write_Cb</a> * </td> <td class="paramname"> <em>eet_write_cb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const void * </td> <td class="paramname"> <em>user_data</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Instanciate a new connection to track. </p> <p>eet_read_cb Function to call when one Eet_Data packet has been fully assemble. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>eet_write_cb</em> </td><td>Function to call when one Eet_Data packet is ready to be send over the wire. </td></tr> <tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>Pointer provided to both functions to be used as a context handler. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>NULL on failure, or a valid Eet_Connection handler.</dd></dl> <p>For every connection to track you will need a separate Eet_Connection provider.</p> <dl class="since"><dt><b>Since:</b></dt><dd>1.2.4 </dd></dl> </div> </div> <a class="anchor" id="ga3e9d92c3bffdace3fcb0e6de04fea59a"></a><!-- doxytag: member="Eet.h::eet_connection_node_send" ref="ga3e9d92c3bffdace3fcb0e6de04fea59a" args="(Eet_Connection *conn, Eet_Node *node, const char *cipher_key)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">EAPI Eina_Bool eet_connection_node_send </td> <td>(</td> <td class="paramtype"><a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a> * </td> <td class="paramname"> <em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Eet__Node__Group.html#gaf589647d3f0fb3e3d03a5c42cd23f51c">Eet_Node</a> * </td> <td class="paramname"> <em>node</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>cipher_key</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Convert a Eet_Node tree and prepare it to be send. </p> <p>conn Connection handler to track. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>node</em> </td><td>The data tree to use when encoding. </td></tr> <tr><td valign="top"></td><td valign="top"><em>cipher_key</em> </td><td>The key to use as cipher. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>EINA_TRUE if the data where correctly send, EINA_FALSE if they don't.</dd></dl> <p>This function serialize node, assemble the packet and call Eet_Write_Cb when ready. The data passed Eet_Write_Cb are temporary allocated and will vanish just after the return of the callback.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__Eet__Node__Group.html#ga665a2c4f2ea2621bbe8f9852b102a13c" title="TODO FIX ME.">eet_data_node_encode_cipher</a></dd></dl> <dl class="since"><dt><b>Since:</b></dt><dd>1.2.4 </dd></dl> <p>References <a class="el" href="eet__data_8c_source.html#l03781">eet_data_node_encode_cipher()</a>.</p> </div> </div> <a class="anchor" id="gad862fb515beabce583dd60d10a78011f"></a><!-- doxytag: member="Eet.h::eet_connection_received" ref="gad862fb515beabce583dd60d10a78011f" args="(Eet_Connection *conn, const void *data, size_t size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">EAPI int eet_connection_received </td> <td>(</td> <td class="paramtype"><a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a> * </td> <td class="paramname"> <em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const void * </td> <td class="paramname"> <em>data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"> <em>size</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Process a raw packet received over the link conn Connection handler to track. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>Raw data packet. </td></tr> <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>The size of that packet. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>0 on complete success, any other value indicate where in the stream it got wrong (It could be before that packet).</dd></dl> <p>Every time you receive a packet related to your connection, you should pass it to that function so that it could process and assemble packet has you receive it. It will automatically call Eet_Read_Cb when one is fully received.</p> <dl class="since"><dt><b>Since:</b></dt><dd>1.2.4 </dd></dl> </div> </div> <a class="anchor" id="gacd2289a85daa867e290a5f3e0e0d492d"></a><!-- doxytag: member="Eet.h::eet_connection_send" ref="gacd2289a85daa867e290a5f3e0e0d492d" args="(Eet_Connection *conn, Eet_Data_Descriptor *edd, const void *data_in, const char *cipher_key)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">EAPI Eina_Bool eet_connection_send </td> <td>(</td> <td class="paramtype"><a class="el" href="group__Eet__Connection__Group.html#ga74fdc0339a17a94ce451e5a9870a66f4">Eet_Connection</a> * </td> <td class="paramname"> <em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__Eet__Data__Group.html#ga4baec0e840012480a0958c5c3bca276d">Eet_Data_Descriptor</a> * </td> <td class="paramname"> <em>edd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const void * </td> <td class="paramname"> <em>data_in</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>cipher_key</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Convert a complex structure and prepare it to be send. </p> <p>conn Connection handler to track. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>edd</em> </td><td>The data descriptor to use when encoding. </td></tr> <tr><td valign="top"></td><td valign="top"><em>data_in</em> </td><td>The pointer to the struct to encode into data. </td></tr> <tr><td valign="top"></td><td valign="top"><em>cipher_key</em> </td><td>The key to use as cipher. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>EINA_TRUE if the data where correctly send, EINA_FALSE if they don't.</dd></dl> <p>This function serialize data_in with edd, assemble the packet and call Eet_Write_Cb when ready. The data passed Eet_Write_Cb are temporary allocated and will vanish just after the return of the callback.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__Eet__Data__Cipher__Group.html#gab765474a660b0dfe5f00d99a960206db" title="Encode a data struct to memory and return that encoded data using a cipher.">eet_data_descriptor_encode_cipher</a></dd></dl> <dl class="since"><dt><b>Since:</b></dt><dd>1.2.4 </dd></dl> <p>References <a class="el" href="eet__data_8c_source.html#l03811">eet_data_descriptor_encode_cipher()</a>.</p> </div> </div> </div> <div id="push"></div> </div> <!-- #content --> </div> <!-- .layout --> </div> <!-- #container --> <div id="footer"> <table><tr> <td class="poweredby"><img src="doxygen.png"></td> <td class="copyright">Copyright ©2010 Enlightenment</td> <td class="generated">Docs generated Fri Jul 2 11:41:22 2010</td> </tr></table> </div> </body> </html>