eccodes/html/group__context.html

1017 lines
58 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>grib_api: The context object</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="examples.html"><span>Examples</span></a></li>
</ul>
</div>
<h1>The context object</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca">grib_free_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *data)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib free procedure, format of a procedure referenced in the context that is used to free memory. <a href="#g807998f481ebb5ab8916b23669bc38ca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0">grib_malloc_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, size_t length)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib malloc procedure, format of a procedure referenced in the context that is used to allocate memory. <a href="#ge40ef151522f628d0a0300861e1869e0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void *(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gcfc03db8667b1019d896ab2ab47dc12d">grib_realloc_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *data, size_t length)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib realloc procedure, format of a procedure referenced in the context that is used to reallocate memory. <a href="#gcfc03db8667b1019d896ab2ab47dc12d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gba007477d7d085d602184ae4df95f994">grib_log_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, int level, const char *mesg)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib loc proc, format of a procedure referenced in the context that is used to log internal messages. <a href="#gba007477d7d085d602184ae4df95f994"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gd18d790f8aabf46e6b766eab07b535a0">grib_print_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *descriptor, const char *mesg)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib print proc, format of a procedure referenced in the context that is used to print external messages. <a href="#gd18d790f8aabf46e6b766eab07b535a0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef size_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gfcaeb1a8fb78e0028906ee1e2ddbfcc0">grib_data_read_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *ptr, size_t size, void *stream)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib data read proc, format of a procedure referenced in the context that is used to read from a stream in a resource. <a href="#gfcaeb1a8fb78e0028906ee1e2ddbfcc0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef size_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g85f5907a2b006b370be8e176e92d0248">grib_data_write_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, const void *ptr, size_t size, void *stream)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib data read write, format of a procedure referenced in the context that is used to write to a stream from a resource. <a href="#g85f5907a2b006b370be8e176e92d0248"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef off_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g5fc575ad1d5736763f2d688b82597b09">grib_data_tell_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *stream)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib data tell, format of a procedure referenced in the context that is used to tell the current position in a stream. <a href="#g5fc575ad1d5736763f2d688b82597b09"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef off_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g9d4894f207e7f5d70533371915e45a2d">grib_data_seek_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, off_t offset, int whence, void *stream)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib data seek, format of a procedure referenced in the context that is used to seek the current position in a stream. <a href="#g9d4894f207e7f5d70533371915e45a2d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g49b4be77db1a3764ca291e7b45fce366">grib_data_eof_proc</a> )(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *stream)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Grib data eof, format of a procedure referenced in the context that is used to test end of file. <a href="#g49b4be77db1a3764ca291e7b45fce366"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ge4d49e82f57836891aa57fce24b59800">grib_get_context</a> (<a class="el" href="group__grib__handle.html#g309a5ee24f4c730646d3f80ad0ef5f1b">grib_handle</a> *h)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retreive the context from a handle. <a href="#ge4d49e82f57836891aa57fce24b59800"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g01ce1b8dc121afe1fd8212ceef8c829d">grib_context_get_default</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the static default context. <a href="#g01ce1b8dc121afe1fd8212ceef8c829d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gbbb93339feef87a0ef7c415fa484c022">grib_context_new</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create and allocate a new context from a parent context. <a href="#gbbb93339feef87a0ef7c415fa484c022"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g4bd1c4d8b32c1ae42227420ed2251d57">grib_context_delete</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees the cached definition files of the context. <a href="#g4bd1c4d8b32c1ae42227420ed2251d57"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g8d72ab772809fba49a41b32909770dd1">grib_gts_header_on</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the gts header mode on. <a href="#g8d72ab772809fba49a41b32909770dd1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g9a3ce8e25ef3e59387015f906a79901a">grib_gts_header_off</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the gts header mode off. <a href="#g9a3ce8e25ef3e59387015f906a79901a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ge8e9e3cce24d282a1b34432926b868c0">grib_gribex_mode_on</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the gribex mode on. <a href="#ge8e9e3cce24d282a1b34432926b868c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g6f6a5612649241d9ecae7e2a288bc436">grib_gribex_mode_off</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the gribex mode off. <a href="#g6f6a5612649241d9ecae7e2a288bc436"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gec49c14665a9b4faa90a74cb069b9a30">grib_context_set_user_data</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *udata)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets user data in a context. <a href="#gec49c14665a9b4faa90a74cb069b9a30"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g7063ea5ce72ed460a1978c26dbc6af89">grib_context_get_user_data</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get userData from a context <a href="#g7063ea5ce72ed460a1978c26dbc6af89"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gf38d04b9b8438fca7a418b507915030a">grib_context_set_memory_proc</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, <a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0">grib_malloc_proc</a> griballoc, <a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca">grib_free_proc</a> gribfree, <a class="el" href="group__context.html#gcfc03db8667b1019d896ab2ab47dc12d">grib_realloc_proc</a> gribrealloc)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets memory procedures of the context. <a href="#gf38d04b9b8438fca7a418b507915030a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g5cd4b2513883a0d5989d5643087c4097">grib_context_set_persistent_memory_proc</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, <a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0">grib_malloc_proc</a> griballoc, <a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca">grib_free_proc</a> gribfree)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets memory procedures of the context for persistent data. <a href="#g5cd4b2513883a0d5989d5643087c4097"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g13ac96fc6a017f896cfe1325fcd7aa6b">grib_context_set_buffer_memory_proc</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, <a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0">grib_malloc_proc</a> griballoc, <a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca">grib_free_proc</a> gribfree, <a class="el" href="group__context.html#gcfc03db8667b1019d896ab2ab47dc12d">grib_realloc_proc</a> gribrealloc)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets memory procedures of the context for large buffers. <a href="#g13ac96fc6a017f896cfe1325fcd7aa6b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g06f0601960b317f15b78396ed12b1881">grib_context_set_path</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, const char *path)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the context search path for definition files. <a href="#g06f0601960b317f15b78396ed12b1881"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gd007cf96b681b389dadbbb9e7540e321">grib_context_set_dump_mode</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, int mode)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets context dump mode. <a href="#gd007cf96b681b389dadbbb9e7540e321"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g68b597e40215c9ced7959c7350980d2f">grib_context_set_print_proc</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, <a class="el" href="group__context.html#gd18d790f8aabf46e6b766eab07b535a0">grib_print_proc</a> printp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the context printing procedure used for user interaction. <a href="#g68b597e40215c9ced7959c7350980d2f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g09581ce8cdeff9da0f38a78898097b9e">grib_context_set_logging_proc</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, <a class="el" href="group__context.html#gba007477d7d085d602184ae4df95f994">grib_log_proc</a> logp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the context logging procedure used for system (warning, errors, infos . <a href="#g09581ce8cdeff9da0f38a78898097b9e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#g3266536e68ebb6d4bbc4a22b29f0e8ea">grib_multi_support_on</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Turn on support for multiple fields in single grib messages. <a href="#g3266536e68ebb6d4bbc4a22b29f0e8ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gc022270a99922ccc57147670ed2a58d4">grib_multi_support_off</a> (<a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Turn off support for multiple fields in single grib messages. <a href="#gc022270a99922ccc57147670ed2a58d4"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
The context is a long life configuration object of the grib_api. It is used to define special allocation and free routines or to set special grib_api behaviours and variables. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="g49b4be77db1a3764ca291e7b45fce366"></a><!-- doxytag: member="grib_api.h::grib_data_eof_proc" ref="g49b4be77db1a3764ca291e7b45fce366" args=")(const grib_context *c, void *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int(* <a class="el" href="group__context.html#g49b4be77db1a3764ca291e7b45fce366">grib_data_eof_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *stream) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib data eof, format of a procedure referenced in the context that is used to test end of file.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the tell will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>*stream</em>&nbsp;</td><td>: the stream </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the position in the stream </dd></dl>
</div>
</div><p>
<a class="anchor" name="gfcaeb1a8fb78e0028906ee1e2ddbfcc0"></a><!-- doxytag: member="grib_api.h::grib_data_read_proc" ref="gfcaeb1a8fb78e0028906ee1e2ddbfcc0" args=")(const grib_context *c, void *ptr, size_t size, void *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef size_t(* <a class="el" href="group__context.html#gfcaeb1a8fb78e0028906ee1e2ddbfcc0">grib_data_read_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *ptr, size_t size, void *stream) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib data read proc, format of a procedure referenced in the context that is used to read from a stream in a resource.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the read will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>*ptr</em>&nbsp;</td><td>: the resource </td></tr>
<tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>: size to read </td></tr>
<tr><td valign="top"></td><td valign="top"><em>*stream</em>&nbsp;</td><td>: the stream </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>size read </dd></dl>
</div>
</div><p>
<a class="anchor" name="g9d4894f207e7f5d70533371915e45a2d"></a><!-- doxytag: member="grib_api.h::grib_data_seek_proc" ref="g9d4894f207e7f5d70533371915e45a2d" args=")(const grib_context *c, off_t offset, int whence, void *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef off_t(* <a class="el" href="group__context.html#g9d4894f207e7f5d70533371915e45a2d">grib_data_seek_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, off_t offset, int whence, void *stream) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib data seek, format of a procedure referenced in the context that is used to seek the current position in a stream.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the tell will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>: the offset to seek to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>whence</em>&nbsp;</td><td>: If whence is set to SEEK_SET, SEEK_CUR, or SEEK_END, the offset is relative to the start of the file, the current position indicator, or end-of-file, respectively. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>*stream</em>&nbsp;</td><td>: the stream </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>0 if OK, integer value on error </dd></dl>
</div>
</div><p>
<a class="anchor" name="g5fc575ad1d5736763f2d688b82597b09"></a><!-- doxytag: member="grib_api.h::grib_data_tell_proc" ref="g5fc575ad1d5736763f2d688b82597b09" args=")(const grib_context *c, void *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef off_t(* <a class="el" href="group__context.html#g5fc575ad1d5736763f2d688b82597b09">grib_data_tell_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *stream) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib data tell, format of a procedure referenced in the context that is used to tell the current position in a stream.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the tell will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>*stream</em>&nbsp;</td><td>: the stream </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the position in the stream </dd></dl>
</div>
</div><p>
<a class="anchor" name="g85f5907a2b006b370be8e176e92d0248"></a><!-- doxytag: member="grib_api.h::grib_data_write_proc" ref="g85f5907a2b006b370be8e176e92d0248" args=")(const grib_context *c, const void *ptr, size_t size, void *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef size_t(* <a class="el" href="group__context.html#g85f5907a2b006b370be8e176e92d0248">grib_data_write_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, const void *ptr, size_t size, void *stream) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib data read write, format of a procedure referenced in the context that is used to write to a stream from a resource.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the write will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>*ptr</em>&nbsp;</td><td>: the resource </td></tr>
<tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>: size to read </td></tr>
<tr><td valign="top"></td><td valign="top"><em>*stream</em>&nbsp;</td><td>: the stream </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>size written </dd></dl>
</div>
</div><p>
<a class="anchor" name="g807998f481ebb5ab8916b23669bc38ca"></a><!-- doxytag: member="grib_api.h::grib_free_proc" ref="g807998f481ebb5ab8916b23669bc38ca" args=")(const grib_context *c, void *data)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* <a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca">grib_free_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *data) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib free procedure, format of a procedure referenced in the context that is used to free memory.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the memory freeing will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>: pointer to the data to be freed must match </td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0" title="Grib malloc procedure, format of a procedure referenced in the context that is used...">grib_malloc_proc</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="gba007477d7d085d602184ae4df95f994"></a><!-- doxytag: member="grib_api.h::grib_log_proc" ref="gba007477d7d085d602184ae4df95f994" args=")(const grib_context *c, int level, const char *mesg)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* <a class="el" href="group__context.html#gba007477d7d085d602184ae4df95f994">grib_log_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, int level, const char *mesg) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib loc proc, format of a procedure referenced in the context that is used to log internal messages.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the logging will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>level</em>&nbsp;</td><td>: the log level, as defined in log modes </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mesg</em>&nbsp;</td><td>: the message to be logged </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="ge40ef151522f628d0a0300861e1869e0"></a><!-- doxytag: member="grib_api.h::grib_malloc_proc" ref="ge40ef151522f628d0a0300861e1869e0" args=")(const grib_context *c, size_t length)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void*(* <a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0">grib_malloc_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, size_t length) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib malloc procedure, format of a procedure referenced in the context that is used to allocate memory.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the memory allocation will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>: length to be allocated in number of bytes </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the alocated memory, NULL if no memory can be allocated must match </dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca" title="Grib free procedure, format of a procedure referenced in the context that is used...">grib_free_proc</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd18d790f8aabf46e6b766eab07b535a0"></a><!-- doxytag: member="grib_api.h::grib_print_proc" ref="gd18d790f8aabf46e6b766eab07b535a0" args=")(const grib_context *c, void *descriptor, const char *mesg)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void(* <a class="el" href="group__context.html#gd18d790f8aabf46e6b766eab07b535a0">grib_print_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *descriptor, const char *mesg) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib print proc, format of a procedure referenced in the context that is used to print external messages.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the logging will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>descriptor</em>&nbsp;</td><td>: the structure to be printed on, must match the implementation </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mesg</em>&nbsp;</td><td>: the message to be printed </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="gcfc03db8667b1019d896ab2ab47dc12d"></a><!-- doxytag: member="grib_api.h::grib_realloc_proc" ref="gcfc03db8667b1019d896ab2ab47dc12d" args=")(const grib_context *c, void *data, size_t length)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void*(* <a class="el" href="group__context.html#gcfc03db8667b1019d896ab2ab47dc12d">grib_realloc_proc</a>)(const <a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *c, void *data, size_t length) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Grib realloc procedure, format of a procedure referenced in the context that is used to reallocate memory.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context where the memory allocation will apply </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>: pointer to the data to be reallocated </td></tr>
<tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>: length to be allocated in number of bytes </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>a pointer to the alocated memory </dd></dl>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g4bd1c4d8b32c1ae42227420ed2251d57"></a><!-- doxytag: member="grib_api.h::grib_context_delete" ref="g4bd1c4d8b32c1ae42227420ed2251d57" args="(grib_context *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_context_delete </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Frees the cached definition files of the context.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be deleted </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g01ce1b8dc121afe1fd8212ceef8c829d"></a><!-- doxytag: member="grib_api.h::grib_context_get_default" ref="g01ce1b8dc121afe1fd8212ceef8c829d" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a>* grib_context_get_default </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get the static default context.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the default context, NULL it the context is not available </dd></dl>
</div>
</div><p>
<a class="anchor" name="g7063ea5ce72ed460a1978c26dbc6af89"></a><!-- doxytag: member="grib_api.h::grib_context_get_user_data" ref="g7063ea5ce72ed460a1978c26dbc6af89" args="(grib_context *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* grib_context_get_user_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
get userData from a context
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context from which the user data will be retreived </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the user data referenced in the context </dd></dl>
</div>
</div><p>
<a class="anchor" name="gbbb93339feef87a0ef7c415fa484c022"></a><!-- doxytag: member="grib_api.h::grib_context_new" ref="gbbb93339feef87a0ef7c415fa484c022" args="(grib_context *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a>* grib_context_new </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Create and allocate a new context from a parent context.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be cloned, NULL for default context </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the new and empty context, NULL if error </dd></dl>
</div>
</div><p>
<a class="anchor" name="g13ac96fc6a017f896cfe1325fcd7aa6b"></a><!-- doxytag: member="grib_api.h::grib_context_set_buffer_memory_proc" ref="g13ac96fc6a017f896cfe1325fcd7aa6b" args="(grib_context *c, grib_malloc_proc griballoc, grib_free_proc gribfree, grib_realloc_proc gribrealloc)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_context_set_buffer_memory_proc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0">grib_malloc_proc</a>&nbsp;</td>
<td class="paramname"> <em>griballoc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca">grib_free_proc</a>&nbsp;</td>
<td class="paramname"> <em>gribfree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#gcfc03db8667b1019d896ab2ab47dc12d">grib_realloc_proc</a>&nbsp;</td>
<td class="paramname"> <em>gribrealloc</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets memory procedures of the context for large buffers.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
<tr><td valign="top"></td><td valign="top"><em>griballoc</em>&nbsp;</td><td>: the memory allocation procedure to be set </td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0" title="Grib malloc procedure, format of a procedure referenced in the context that is used...">grib_malloc_proc</a> </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>gribfree</em>&nbsp;</td><td>: the memory freeing procedure to be set </td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca" title="Grib free procedure, format of a procedure referenced in the context that is used...">grib_free_proc</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="gd007cf96b681b389dadbbb9e7540e321"></a><!-- doxytag: member="grib_api.h::grib_context_set_dump_mode" ref="gd007cf96b681b389dadbbb9e7540e321" args="(grib_context *c, int mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_context_set_dump_mode </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets context dump mode.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
<tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>: the log mode to be set </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g09581ce8cdeff9da0f38a78898097b9e"></a><!-- doxytag: member="grib_api.h::grib_context_set_logging_proc" ref="g09581ce8cdeff9da0f38a78898097b9e" args="(grib_context *c, grib_log_proc logp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_context_set_logging_proc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#gba007477d7d085d602184ae4df95f994">grib_log_proc</a>&nbsp;</td>
<td class="paramname"> <em>logp</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the context logging procedure used for system (warning, errors, infos .
<p>
..) messages<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
<tr><td valign="top"></td><td valign="top"><em>logp</em>&nbsp;</td><td>: the logging procedure to be set </td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#gba007477d7d085d602184ae4df95f994" title="Grib loc proc, format of a procedure referenced in the context that is used to log...">grib_log_proc</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="gf38d04b9b8438fca7a418b507915030a"></a><!-- doxytag: member="grib_api.h::grib_context_set_memory_proc" ref="gf38d04b9b8438fca7a418b507915030a" args="(grib_context *c, grib_malloc_proc griballoc, grib_free_proc gribfree, grib_realloc_proc gribrealloc)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_context_set_memory_proc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0">grib_malloc_proc</a>&nbsp;</td>
<td class="paramname"> <em>griballoc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca">grib_free_proc</a>&nbsp;</td>
<td class="paramname"> <em>gribfree</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#gcfc03db8667b1019d896ab2ab47dc12d">grib_realloc_proc</a>&nbsp;</td>
<td class="paramname"> <em>gribrealloc</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets memory procedures of the context.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
<tr><td valign="top"></td><td valign="top"><em>griballoc</em>&nbsp;</td><td>: the memory allocation procedure to be set </td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0" title="Grib malloc procedure, format of a procedure referenced in the context that is used...">grib_malloc_proc</a> </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>gribfree</em>&nbsp;</td><td>: the memory freeing procedure to be set </td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca" title="Grib free procedure, format of a procedure referenced in the context that is used...">grib_free_proc</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="g06f0601960b317f15b78396ed12b1881"></a><!-- doxytag: member="grib_api.h::grib_context_set_path" ref="g06f0601960b317f15b78396ed12b1881" args="(grib_context *c, const char *path)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_context_set_path </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>path</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the context search path for definition files.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
<tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>: the search path to be set </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g5cd4b2513883a0d5989d5643087c4097"></a><!-- doxytag: member="grib_api.h::grib_context_set_persistent_memory_proc" ref="g5cd4b2513883a0d5989d5643087c4097" args="(grib_context *c, grib_malloc_proc griballoc, grib_free_proc gribfree)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_context_set_persistent_memory_proc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0">grib_malloc_proc</a>&nbsp;</td>
<td class="paramname"> <em>griballoc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca">grib_free_proc</a>&nbsp;</td>
<td class="paramname"> <em>gribfree</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets memory procedures of the context for persistent data.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
<tr><td valign="top"></td><td valign="top"><em>griballoc</em>&nbsp;</td><td>: the memory allocation procedure to be set </td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#ge40ef151522f628d0a0300861e1869e0" title="Grib malloc procedure, format of a procedure referenced in the context that is used...">grib_malloc_proc</a> </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>gribfree</em>&nbsp;</td><td>: the memory freeing procedure to be set </td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#g807998f481ebb5ab8916b23669bc38ca" title="Grib free procedure, format of a procedure referenced in the context that is used...">grib_free_proc</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="g68b597e40215c9ced7959c7350980d2f"></a><!-- doxytag: member="grib_api.h::grib_context_set_print_proc" ref="g68b597e40215c9ced7959c7350980d2f" args="(grib_context *c, grib_print_proc printp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_context_set_print_proc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__context.html#gd18d790f8aabf46e6b766eab07b535a0">grib_print_proc</a>&nbsp;</td>
<td class="paramname"> <em>printp</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the context printing procedure used for user interaction.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
<tr><td valign="top"></td><td valign="top"><em>printp</em>&nbsp;</td><td>: the printing procedure to be set </td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="group__context.html#gd18d790f8aabf46e6b766eab07b535a0" title="Grib print proc, format of a procedure referenced in the context that is used to...">grib_print_proc</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="gec49c14665a9b4faa90a74cb069b9a30"></a><!-- doxytag: member="grib_api.h::grib_context_set_user_data" ref="gec49c14665a9b4faa90a74cb069b9a30" args="(grib_context *c, void *udata)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_context_set_user_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>udata</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets user data in a context.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
<tr><td valign="top"></td><td valign="top"><em>udata</em>&nbsp;</td><td>: the user data to set </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="ge4d49e82f57836891aa57fce24b59800"></a><!-- doxytag: member="grib_api.h::grib_get_context" ref="ge4d49e82f57836891aa57fce24b59800" args="(grib_handle *h)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a>* grib_get_context </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__grib__handle.html#g309a5ee24f4c730646d3f80ad0ef5f1b">grib_handle</a> *&nbsp;</td>
<td class="paramname"> <em>h</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retreive the context from a handle.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>h</em>&nbsp;</td><td>: the handle used to retreive the context from </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The handle's context, NULL it the handle is invalid </dd></dl>
</div>
</div><p>
<a class="anchor" name="g6f6a5612649241d9ecae7e2a288bc436"></a><!-- doxytag: member="grib_api.h::grib_gribex_mode_off" ref="g6f6a5612649241d9ecae7e2a288bc436" args="(grib_context *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_gribex_mode_off </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set the gribex mode off.
<p>
Grib files won't be always compatible with gribex.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be deleted </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="ge8e9e3cce24d282a1b34432926b868c0"></a><!-- doxytag: member="grib_api.h::grib_gribex_mode_on" ref="ge8e9e3cce24d282a1b34432926b868c0" args="(grib_context *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_gribex_mode_on </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set the gribex mode on.
<p>
Grib files will be compatible with gribex.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be deleted </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g9a3ce8e25ef3e59387015f906a79901a"></a><!-- doxytag: member="grib_api.h::grib_gts_header_off" ref="g9a3ce8e25ef3e59387015f906a79901a" args="(grib_context *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_gts_header_off </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set the gts header mode off.
<p>
The GTS headers will be deleted.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be deleted </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="g8d72ab772809fba49a41b32909770dd1"></a><!-- doxytag: member="grib_api.h::grib_gts_header_on" ref="g8d72ab772809fba49a41b32909770dd1" args="(grib_context *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_gts_header_on </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Set the gts header mode on.
<p>
The GTS headers will be preserved.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be deleted </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="gc022270a99922ccc57147670ed2a58d4"></a><!-- doxytag: member="grib_api.h::grib_multi_support_off" ref="gc022270a99922ccc57147670ed2a58d4" args="(grib_context *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_multi_support_off </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Turn off support for multiple fields in single grib messages.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
</table>
</dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="multi_8f90-example.html#a1">multi.f90</a>, and <a class="el" href="multi__fortran_8_f-example.html#a1">multi_fortran.F</a>.</dl>
</div>
</div><p>
<a class="anchor" name="g3266536e68ebb6d4bbc4a22b29f0e8ea"></a><!-- doxytag: member="grib_api.h::grib_multi_support_on" ref="g3266536e68ebb6d4bbc4a22b29f0e8ea" args="(grib_context *c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grib_multi_support_on </td>
<td>(</td>
<td class="paramtype"><a class="el" href="grib__api_8h.html#8e7f259b6dec023add23b2a5ddd93bad">grib_context</a> *&nbsp;</td>
<td class="paramname"> <em>c</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Turn on support for multiple fields in single grib messages.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td>: the context to be modified </td></tr>
</table>
</dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="multi_8c-example.html#a1">multi.c</a>, <a class="el" href="multi_8f90-example.html#a0">multi.f90</a>, and <a class="el" href="multi__fortran_8_f-example.html#a0">multi_fortran.F</a>.</dl>
</div>
</div><p>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Sep 22 15:18:22 2009 for grib_api by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>