<trclass="memitem:ga4c2203d55c2c3ca792e44e4eb26edfb5"><tdclass="memItemLeft"align="right"valign="top">int </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group__codes__handle.html#ga4c2203d55c2c3ca792e44e4eb26edfb5">codes_count_in_file</a> (<aclass="el"href="structcodes__context.html">codes_context</a> *c, FILE *f, int *n)</td></tr>
<trclass="memdesc:ga4c2203d55c2c3ca792e44e4eb26edfb5"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Counts the messages contained in a file resource. <ahref="#ga4c2203d55c2c3ca792e44e4eb26edfb5">More...</a><br/></td></tr>
<trclass="memitem:ga6ec42bd6272b4a0f2cb2b220b86c71c8"><tdclass="memItemLeft"align="right"valign="top">grib_handle * </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group__codes__handle.html#ga6ec42bd6272b4a0f2cb2b220b86c71c8">codes_handle_new_from_file</a> (grib_context *c, FILE *f, ProductKind product, int *error)</td></tr>
<trclass="memdesc:ga6ec42bd6272b4a0f2cb2b220b86c71c8"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Create a handle from a file resource. <ahref="#ga6ec42bd6272b4a0f2cb2b220b86c71c8">More...</a><br/></td></tr>
<trclass="memitem:ga36de77229cc3b386d26c1e7b52c21e0e"><tdclass="memItemLeft"align="right"valign="top">grib_handle * </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group__codes__handle.html#ga36de77229cc3b386d26c1e7b52c21e0e">codes_grib_handle_new_from_file</a> (grib_context *c, FILE *f, int *error)</td></tr>
<trclass="memdesc:ga36de77229cc3b386d26c1e7b52c21e0e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Create a GRIB handle from a file resource. <ahref="#ga36de77229cc3b386d26c1e7b52c21e0e">More...</a><br/></td></tr>
<trclass="memitem:ga6958c3cd7e4059af5c26898a872262ff"><tdclass="memItemLeft"align="right"valign="top">grib_handle * </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group__codes__handle.html#ga6958c3cd7e4059af5c26898a872262ff">codes_bufr_handle_new_from_file</a> (grib_context *c, FILE *f, int *error)</td></tr>
<trclass="memdesc:ga6958c3cd7e4059af5c26898a872262ff"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Create a BUFR handle from a file resource. <ahref="#ga6958c3cd7e4059af5c26898a872262ff">More...</a><br/></td></tr>
<trclass="memdesc:gac82dbaba240ebf6e76cdbcf2007a6bee"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Write a coded message to a file. <ahref="#gac82dbaba240ebf6e76cdbcf2007a6bee">More...</a><br/></td></tr>
<trclass="memdesc:ga095447ed85ff2142dbda2867ee3b4c8d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Create a handle from a user message in memory. <ahref="#ga095447ed85ff2142dbda2867ee3b4c8d">More...</a><br/></td></tr>
<trclass="memitem:ga385864d5f06e1de0e8ee13388ca4117c"><tdclass="memItemLeft"align="right"valign="top"><aclass="el"href="structcodes__handle.html">codes_handle</a> * </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group__codes__handle.html#ga385864d5f06e1de0e8ee13388ca4117c">codes_grib_handle_new_from_multi_message</a> (<aclass="el"href="structcodes__context.html">codes_context</a> *c, void **data, size_t *data_len, int *error)</td></tr>
<trclass="memdesc:ga385864d5f06e1de0e8ee13388ca4117c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Create a handle from a user message in memory. <ahref="#ga385864d5f06e1de0e8ee13388ca4117c">More...</a><br/></td></tr>
<trclass="memdesc:ga079df0c709e381812ae13af08c354032"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Create a handle from a user message. <ahref="#ga079df0c709e381812ae13af08c354032">More...</a><br/></td></tr>
<trclass="memdesc:ga3b281a237e311c6b8fa4bd7096d7e025"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Create a handle from a GRIB message contained in a samples directory. <ahref="#ga3b281a237e311c6b8fa4bd7096d7e025">More...</a><br/></td></tr>
<trclass="memdesc:ga56d0f831e520ec7bc4a0ca334c63f557"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Create a handle from a BUFR message contained in a samples directory. <ahref="#ga56d0f831e520ec7bc4a0ca334c63f557">More...</a><br/></td></tr>
<trclass="memdesc:ga7b226527aa98d90f2bdb470105732878"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Clone an existing handle using the context of the original handle, The message is copied and reparsed. <ahref="#ga7b226527aa98d90f2bdb470105732878">More...</a><br/></td></tr>
<trclass="memdesc:ga358ea000ceed775e7367ccab581be978"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Frees a handle, also frees the message if it is not a user message. <ahref="#ga358ea000ceed775e7367ccab581be978">More...</a><br/></td></tr>
<trclass="memitem:ga068715aab8b82a5d3092064b6bc27f3d"><tdclass="memItemLeft"align="right"valign="top">int </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group__codes__handle.html#ga068715aab8b82a5d3092064b6bc27f3d">codes_grib_multi_handle_append</a> (<aclass="el"href="structcodes__handle.html">codes_handle</a> *h, int start_section, <aclass="el"href="structcodes__multi__handle.html">codes_multi_handle</a> *mh)</td></tr>
<trclass="memdesc:ga068715aab8b82a5d3092064b6bc27f3d"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Append the sections starting with start_section of the message pointed by h at the end of the multi-field GRIB handle mh. <ahref="#ga068715aab8b82a5d3092064b6bc27f3d">More...</a><br/></td></tr>
<trclass="memdesc:gac06089d897eea71d8944cc622a45737f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Write a multi-field GRIB handle in a file. <ahref="#gac06089d897eea71d8944cc622a45737f">More...</a><br/></td></tr>
<p>Create a BUFR handle from a file resource. </p>
<p>The file is read until a BUFR message is found. The message is then copied. Remember always to delete the handle when it is not needed anymore to avoid memory leaks.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">c</td><td>: the context from which the handle will be created (NULL for default context) </td></tr>
<tr><tdclass="paramname">f</td><td>: the file resource </td></tr>
<tr><tdclass="paramname">error</td><td>: error code set if the returned handle is NULL and the end of file is not reached </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>the new handle, NULL if the resource is invalid or a problem is encountered </dd></dl>
<p>Create a GRIB handle from a file resource. </p>
<p>The file is read until a GRIB message is found. The message is then copied. Remember always to delete the handle when it is not needed anymore to avoid memory leaks.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">c</td><td>: the context from which the handle will be created (NULL for default context) </td></tr>
<tr><tdclass="paramname">f</td><td>: the file resource </td></tr>
<tr><tdclass="paramname">error</td><td>: error code set if the returned handle is NULL and the end of file is not reached </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>the new handle, NULL if the resource is invalid or a problem is encountered </dd></dl>
<p>Create a handle from a user message in memory. </p>
<p>The message will not be freed at the end. The message will be copied as soon as a modification is needed. This function works also with multi field messages.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">c</td><td>: the context from which the handle will be created (NULL for default context) </td></tr>
<tr><tdclass="paramname">data</td><td>: the actual message </td></tr>
<tr><tdclass="paramname">data_len</td><td>: the length of the message in number of bytes </td></tr>
<p>Append the sections starting with start_section of the message pointed by h at the end of the multi-field GRIB handle mh. </p>
<p>Remember always to delete the multi-handle when it is not needed any more to avoid memory leaks.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">h</td><td>: The handle from which the sections are copied. </td></tr>
<tr><tdclass="paramname">start_section</td><td>: section number. Starting from this section all the sections to the end of the message will be copied. </td></tr>
<tr><tdclass="paramname">mh</td><td>: The multi-field handle on which the sections are appended. </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>0 if OK, integer value on error </dd></dl>
<dlclass="section see"><dt>See Also</dt><dd><aclass="el"href="group__codes__handle.html#ga095447ed85ff2142dbda2867ee3b4c8d"title="Create a handle from a user message in memory. ">codes_handle_new_from_message</a></dd></dl>
<p>The file is read until a message is found. The message is then copied. Remember always to delete the handle when it is not needed anymore to avoid memory leaks.</p>
<dlclass="params"><dt>Parameters</dt><dd>
<tableclass="params">
<tr><tdclass="paramname">c</td><td>: the context from which the handle will be created (NULL for default context) </td></tr>
<tr><tdclass="paramname">f</td><td>: the file resource </td></tr>
<tr><tdclass="paramname">product</td><td>: the kind of product e.g. PRODUCT_GRIB, PRODUCT_BUFR </td></tr>
<tr><tdclass="paramname">error</td><td>: error code set if the returned handle is NULL and the end of file is not reached </td></tr>
</table>
</dd>
</dl>
<dlclass="section return"><dt>Returns</dt><dd>the new handle, NULL if the resource is invalid or a problem is encountered </dd></dl>