protobuf-c/group__api.html

1104 lines
76 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>protobuf-c: Public API</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.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">protobuf-c
&#160;<span id="projectnumber">1.3.3</span>
</div>
<div id="projectbrief">Protocol Buffers implementation in C</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__api.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">Public API</div> </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>This is the public API for <code>libprotobuf-c</code>. These interfaces are stable and subject to Semantic Versioning guarantees. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCAllocator.html">ProtobufCAllocator</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure for defining a custom memory allocator. <a href="structProtobufCAllocator.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCBinaryData.html">ProtobufCBinaryData</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure for the protobuf <code>bytes</code> scalar type. <a href="structProtobufCBinaryData.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCBuffer.html">ProtobufCBuffer</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure for defining a virtual append-only buffer. <a href="structProtobufCBuffer.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCBufferSimple.html">ProtobufCBufferSimple</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Simple buffer "subclass" of <code><a class="el" href="structProtobufCBuffer.html" title="Structure for defining a virtual append-only buffer.">ProtobufCBuffer</a></code>. <a href="structProtobufCBufferSimple.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCEnumDescriptor.html">ProtobufCEnumDescriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes an enumeration as a whole, with all of its values. <a href="structProtobufCEnumDescriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCEnumValue.html">ProtobufCEnumValue</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single value of an enumeration. <a href="structProtobufCEnumValue.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCEnumValueIndex.html">ProtobufCEnumValueIndex</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Used by <code><a class="el" href="structProtobufCEnumDescriptor.html" title="Describes an enumeration as a whole, with all of its values.">ProtobufCEnumDescriptor</a></code> to look up enum values. <a href="structProtobufCEnumValueIndex.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCFieldDescriptor.html">ProtobufCFieldDescriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a single field in a message. <a href="structProtobufCFieldDescriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCIntRange.html">ProtobufCIntRange</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper structure for optimizing int =&gt; index lookups in the case where the keys are mostly consecutive values, as they presumably are for enums and fields. <a href="structProtobufCIntRange.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An instance of a message. <a href="structProtobufCMessage.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCMessageDescriptor.html">ProtobufCMessageDescriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes a message. <a href="structProtobufCMessageDescriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCMessageUnknownField.html">ProtobufCMessageUnknownField</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An unknown message field. <a href="structProtobufCMessageUnknownField.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCMethodDescriptor.html">ProtobufCMethodDescriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Method descriptor. <a href="structProtobufCMethodDescriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCService.html">ProtobufCService</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Service. <a href="structProtobufCService.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structProtobufCServiceDescriptor.html">ProtobufCServiceDescriptor</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Service descriptor. <a href="structProtobufCServiceDescriptor.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga555dc7da9ccda34a7d8f776d5bc77687"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga555dc7da9ccda34a7d8f776d5bc77687">PROTOBUF_C_VERSION</a>&#160;&#160;&#160;&quot;1.3.3&quot;</td></tr>
<tr class="memdesc:ga555dc7da9ccda34a7d8f776d5bc77687"><td class="mdescLeft">&#160;</td><td class="mdescRight">The version of the protobuf-c headers, represented as a string using the same format as <a class="el" href="group__api.html#ga031a0a1c34d58d79d2af8b98d8ff76fd" title="Get the version of the protobuf-c library.">protobuf_c_version()</a>. <a href="group__api.html#ga555dc7da9ccda34a7d8f776d5bc77687">More...</a><br /></td></tr>
<tr class="separator:ga555dc7da9ccda34a7d8f776d5bc77687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd37d3d9cc386e0264a15c612fb9c3b1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#gacd37d3d9cc386e0264a15c612fb9c3b1">PROTOBUF_C_VERSION_NUMBER</a>&#160;&#160;&#160;1003003</td></tr>
<tr class="memdesc:gacd37d3d9cc386e0264a15c612fb9c3b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The version of the protobuf-c headers, represented as an integer using the same format as <a class="el" href="group__api.html#ga9fec84349e6397619265d1058d8f8b20" title="Get the version of the protobuf-c library.">protobuf_c_version_number()</a>. <a href="group__api.html#gacd37d3d9cc386e0264a15c612fb9c3b1">More...</a><br /></td></tr>
<tr class="separator:gacd37d3d9cc386e0264a15c612fb9c3b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac0556b514daf74c37ce3c7a09b0a196e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#gac0556b514daf74c37ce3c7a09b0a196e">PROTOBUF_C_MIN_COMPILER_VERSION</a>&#160;&#160;&#160;1000000</td></tr>
<tr class="memdesc:gac0556b514daf74c37ce3c7a09b0a196e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum protoc-c version which works with the current version of the protobuf-c headers. <a href="group__api.html#gac0556b514daf74c37ce3c7a09b0a196e">More...</a><br /></td></tr>
<tr class="separator:gac0556b514daf74c37ce3c7a09b0a196e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga38a0bc9ff1d31284c7e0ff958103b960"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga38a0bc9ff1d31284c7e0ff958103b960">PROTOBUF_C_MESSAGE_INIT</a>(descriptor)&#160;&#160;&#160;{ descriptor, 0, NULL }</td></tr>
<tr class="memdesc:ga38a0bc9ff1d31284c7e0ff958103b960"><td class="mdescLeft">&#160;</td><td class="mdescRight">Message initialiser. <a href="group__api.html#ga38a0bc9ff1d31284c7e0ff958103b960">More...</a><br /></td></tr>
<tr class="separator:ga38a0bc9ff1d31284c7e0ff958103b960"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d0aff4451c876c7fa4df6c590feb775"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga1d0aff4451c876c7fa4df6c590feb775">PROTOBUF_C_BUFFER_SIMPLE_INIT</a>(array_of_bytes)</td></tr>
<tr class="memdesc:ga1d0aff4451c876c7fa4df6c590feb775"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise a <code><a class="el" href="structProtobufCBufferSimple.html" title="Simple buffer &quot;subclass&quot; of ProtobufCBuffer.">ProtobufCBufferSimple</a></code> object. <a href="group__api.html#ga1d0aff4451c876c7fa4df6c590feb775">More...</a><br /></td></tr>
<tr class="separator:ga1d0aff4451c876c7fa4df6c590feb775"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ccc14c3d392606d993581def958522e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga6ccc14c3d392606d993581def958522e">PROTOBUF_C_BUFFER_SIMPLE_CLEAR</a>(simp_buf)</td></tr>
<tr class="memdesc:ga6ccc14c3d392606d993581def958522e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear a <code><a class="el" href="structProtobufCBufferSimple.html" title="Simple buffer &quot;subclass&quot; of ProtobufCBuffer.">ProtobufCBufferSimple</a></code> object, freeing any allocated memory. <a href="group__api.html#ga6ccc14c3d392606d993581def958522e">More...</a><br /></td></tr>
<tr class="separator:ga6ccc14c3d392606d993581def958522e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga98475218bcbd7a2171589414021c2633"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga98475218bcbd7a2171589414021c2633">protobuf_c_boolean</a></td></tr>
<tr class="memdesc:ga98475218bcbd7a2171589414021c2633"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean type. <a href="group__api.html#ga98475218bcbd7a2171589414021c2633">More...</a><br /></td></tr>
<tr class="separator:ga98475218bcbd7a2171589414021c2633"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7274779a94ac8cff4272a03eb593faeb"><td class="memItemLeft" align="right" valign="top"><a id="ga7274779a94ac8cff4272a03eb593faeb"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>ProtobufCClosure</b>) (const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *, void *closure_data)</td></tr>
<tr class="separator:ga7274779a94ac8cff4272a03eb593faeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab04aebb285c9c4bd8fa934235e2af64f"><td class="memItemLeft" align="right" valign="top"><a id="gab04aebb285c9c4bd8fa934235e2af64f"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>ProtobufCMessageInit</b>) (<a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *)</td></tr>
<tr class="separator:gab04aebb285c9c4bd8fa934235e2af64f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadd5b502a1486fb7e8250848603144abd"><td class="memItemLeft" align="right" valign="top"><a id="gadd5b502a1486fb7e8250848603144abd"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>ProtobufCServiceDestroy</b>) (<a class="el" href="structProtobufCService.html">ProtobufCService</a> *)</td></tr>
<tr class="separator:gadd5b502a1486fb7e8250848603144abd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaadb4aa7b15fbb0f75d96838516eee012"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#gaadb4aa7b15fbb0f75d96838516eee012">ProtobufCFieldFlag</a> </td></tr>
<tr class="memdesc:gaadb4aa7b15fbb0f75d96838516eee012"><td class="mdescLeft">&#160;</td><td class="mdescRight">Values for the <code>flags</code> word in <code><a class="el" href="structProtobufCFieldDescriptor.html" title="Describes a single field in a message.">ProtobufCFieldDescriptor</a></code>. <a href="group__api.html#gaadb4aa7b15fbb0f75d96838516eee012">More...</a><br /></td></tr>
<tr class="separator:gaadb4aa7b15fbb0f75d96838516eee012"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5">ProtobufCLabel</a> </td></tr>
<tr class="memdesc:ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Message field rules. <a href="group__api.html#ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5">More...</a><br /></td></tr>
<tr class="separator:ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga784625188e935a74bc4577297b8c6802"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga784625188e935a74bc4577297b8c6802">ProtobufCType</a> </td></tr>
<tr class="memdesc:ga784625188e935a74bc4577297b8c6802"><td class="mdescLeft">&#160;</td><td class="mdescRight">Field value types. <a href="group__api.html#ga784625188e935a74bc4577297b8c6802">More...</a><br /></td></tr>
<tr class="separator:ga784625188e935a74bc4577297b8c6802"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga58f35889606ee435ad29a83bcea23ca6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga58f35889606ee435ad29a83bcea23ca6">ProtobufCWireType</a> </td></tr>
<tr class="memdesc:ga58f35889606ee435ad29a83bcea23ca6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Field wire types. <a href="group__api.html#ga58f35889606ee435ad29a83bcea23ca6">More...</a><br /></td></tr>
<tr class="separator:ga58f35889606ee435ad29a83bcea23ca6"><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:ga031a0a1c34d58d79d2af8b98d8ff76fd"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga031a0a1c34d58d79d2af8b98d8ff76fd">protobuf_c_version</a> (void)</td></tr>
<tr class="memdesc:ga031a0a1c34d58d79d2af8b98d8ff76fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the version of the protobuf-c library. <a href="group__api.html#ga031a0a1c34d58d79d2af8b98d8ff76fd">More...</a><br /></td></tr>
<tr class="separator:ga031a0a1c34d58d79d2af8b98d8ff76fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9fec84349e6397619265d1058d8f8b20"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga9fec84349e6397619265d1058d8f8b20">protobuf_c_version_number</a> (void)</td></tr>
<tr class="memdesc:ga9fec84349e6397619265d1058d8f8b20"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the version of the protobuf-c library. <a href="group__api.html#ga9fec84349e6397619265d1058d8f8b20">More...</a><br /></td></tr>
<tr class="separator:ga9fec84349e6397619265d1058d8f8b20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad216b8390fd44cfbebdad70c4a5b4686"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structProtobufCEnumValue.html">ProtobufCEnumValue</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#gad216b8390fd44cfbebdad70c4a5b4686">protobuf_c_enum_descriptor_get_value_by_name</a> (const <a class="el" href="structProtobufCEnumDescriptor.html">ProtobufCEnumDescriptor</a> *desc, const char *name)</td></tr>
<tr class="memdesc:gad216b8390fd44cfbebdad70c4a5b4686"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look up a <code><a class="el" href="structProtobufCEnumValue.html" title="Represents a single value of an enumeration.">ProtobufCEnumValue</a></code> from a <code><a class="el" href="structProtobufCEnumDescriptor.html" title="Describes an enumeration as a whole, with all of its values.">ProtobufCEnumDescriptor</a></code> by name. <a href="group__api.html#gad216b8390fd44cfbebdad70c4a5b4686">More...</a><br /></td></tr>
<tr class="separator:gad216b8390fd44cfbebdad70c4a5b4686"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4a2eb3bb8c381fa05c7368be97ce96c4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structProtobufCEnumValue.html">ProtobufCEnumValue</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga4a2eb3bb8c381fa05c7368be97ce96c4">protobuf_c_enum_descriptor_get_value</a> (const <a class="el" href="structProtobufCEnumDescriptor.html">ProtobufCEnumDescriptor</a> *desc, int value)</td></tr>
<tr class="memdesc:ga4a2eb3bb8c381fa05c7368be97ce96c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look up a <code><a class="el" href="structProtobufCEnumValue.html" title="Represents a single value of an enumeration.">ProtobufCEnumValue</a></code> from a <code><a class="el" href="structProtobufCEnumDescriptor.html" title="Describes an enumeration as a whole, with all of its values.">ProtobufCEnumDescriptor</a></code> by numeric value. <a href="group__api.html#ga4a2eb3bb8c381fa05c7368be97ce96c4">More...</a><br /></td></tr>
<tr class="separator:ga4a2eb3bb8c381fa05c7368be97ce96c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa26addf3543bdff9b65d283b1ee1c07f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structProtobufCFieldDescriptor.html">ProtobufCFieldDescriptor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#gaa26addf3543bdff9b65d283b1ee1c07f">protobuf_c_message_descriptor_get_field_by_name</a> (const <a class="el" href="structProtobufCMessageDescriptor.html">ProtobufCMessageDescriptor</a> *desc, const char *name)</td></tr>
<tr class="memdesc:gaa26addf3543bdff9b65d283b1ee1c07f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look up a <code><a class="el" href="structProtobufCFieldDescriptor.html" title="Describes a single field in a message.">ProtobufCFieldDescriptor</a></code> from a <code><a class="el" href="structProtobufCMessageDescriptor.html" title="Describes a message.">ProtobufCMessageDescriptor</a></code> by the name of the field. <a href="group__api.html#gaa26addf3543bdff9b65d283b1ee1c07f">More...</a><br /></td></tr>
<tr class="separator:gaa26addf3543bdff9b65d283b1ee1c07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga004d6ed4fe4cd4b89f3b56cabf773a9a"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structProtobufCFieldDescriptor.html">ProtobufCFieldDescriptor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga004d6ed4fe4cd4b89f3b56cabf773a9a">protobuf_c_message_descriptor_get_field</a> (const <a class="el" href="structProtobufCMessageDescriptor.html">ProtobufCMessageDescriptor</a> *desc, unsigned value)</td></tr>
<tr class="memdesc:ga004d6ed4fe4cd4b89f3b56cabf773a9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look up a <code><a class="el" href="structProtobufCFieldDescriptor.html" title="Describes a single field in a message.">ProtobufCFieldDescriptor</a></code> from a <code><a class="el" href="structProtobufCMessageDescriptor.html" title="Describes a message.">ProtobufCMessageDescriptor</a></code> by the tag value of the field. <a href="group__api.html#ga004d6ed4fe4cd4b89f3b56cabf773a9a">More...</a><br /></td></tr>
<tr class="separator:ga004d6ed4fe4cd4b89f3b56cabf773a9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c92b130142222b96991ffceb053828d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga2c92b130142222b96991ffceb053828d">protobuf_c_message_get_packed_size</a> (const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *message)</td></tr>
<tr class="memdesc:ga2c92b130142222b96991ffceb053828d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the number of bytes required to store the serialised message. <a href="group__api.html#ga2c92b130142222b96991ffceb053828d">More...</a><br /></td></tr>
<tr class="separator:ga2c92b130142222b96991ffceb053828d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga704fdc1201b290834095720472090e9d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga704fdc1201b290834095720472090e9d">protobuf_c_message_pack</a> (const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *message, uint8_t *out)</td></tr>
<tr class="memdesc:ga704fdc1201b290834095720472090e9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialise a message from its in-memory representation. <a href="group__api.html#ga704fdc1201b290834095720472090e9d">More...</a><br /></td></tr>
<tr class="separator:ga704fdc1201b290834095720472090e9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0883bacc5a5b0ba927fdd79204f9ad68"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga0883bacc5a5b0ba927fdd79204f9ad68">protobuf_c_message_pack_to_buffer</a> (const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *message, <a class="el" href="structProtobufCBuffer.html">ProtobufCBuffer</a> *buffer)</td></tr>
<tr class="memdesc:ga0883bacc5a5b0ba927fdd79204f9ad68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Serialise a message from its in-memory representation to a virtual buffer. <a href="group__api.html#ga0883bacc5a5b0ba927fdd79204f9ad68">More...</a><br /></td></tr>
<tr class="separator:ga0883bacc5a5b0ba927fdd79204f9ad68"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacc355835c22e19877df07a44f2f5b920"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#gacc355835c22e19877df07a44f2f5b920">protobuf_c_message_unpack</a> (const <a class="el" href="structProtobufCMessageDescriptor.html">ProtobufCMessageDescriptor</a> *descriptor, <a class="el" href="structProtobufCAllocator.html">ProtobufCAllocator</a> *allocator, size_t len, const uint8_t *data)</td></tr>
<tr class="memdesc:gacc355835c22e19877df07a44f2f5b920"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unpack a serialised message into an in-memory representation. <a href="group__api.html#gacc355835c22e19877df07a44f2f5b920">More...</a><br /></td></tr>
<tr class="separator:gacc355835c22e19877df07a44f2f5b920"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1cdf87e9105fb1517d2406a6ca14fbe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#gaf1cdf87e9105fb1517d2406a6ca14fbe">protobuf_c_message_free_unpacked</a> (<a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *message, <a class="el" href="structProtobufCAllocator.html">ProtobufCAllocator</a> *allocator)</td></tr>
<tr class="memdesc:gaf1cdf87e9105fb1517d2406a6ca14fbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free an unpacked message object. <a href="group__api.html#gaf1cdf87e9105fb1517d2406a6ca14fbe">More...</a><br /></td></tr>
<tr class="separator:gaf1cdf87e9105fb1517d2406a6ca14fbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga34185ffb0dea60bdf58a24816afb180a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__api.html#ga98475218bcbd7a2171589414021c2633">protobuf_c_boolean</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga34185ffb0dea60bdf58a24816afb180a">protobuf_c_message_check</a> (const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *)</td></tr>
<tr class="memdesc:ga34185ffb0dea60bdf58a24816afb180a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the validity of a message object. <a href="group__api.html#ga34185ffb0dea60bdf58a24816afb180a">More...</a><br /></td></tr>
<tr class="separator:ga34185ffb0dea60bdf58a24816afb180a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3b468bf04d5b55955a105e41bef0924"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#gac3b468bf04d5b55955a105e41bef0924">protobuf_c_message_init</a> (const <a class="el" href="structProtobufCMessageDescriptor.html">ProtobufCMessageDescriptor</a> *descriptor, void *message)</td></tr>
<tr class="memdesc:gac3b468bf04d5b55955a105e41bef0924"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialise a message object from a message descriptor. <a href="group__api.html#gac3b468bf04d5b55955a105e41bef0924">More...</a><br /></td></tr>
<tr class="separator:gac3b468bf04d5b55955a105e41bef0924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga83552b50de54c6779abdfef385b4f89c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga83552b50de54c6779abdfef385b4f89c">protobuf_c_service_destroy</a> (<a class="el" href="structProtobufCService.html">ProtobufCService</a> *service)</td></tr>
<tr class="memdesc:ga83552b50de54c6779abdfef385b4f89c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a service. <a href="group__api.html#ga83552b50de54c6779abdfef385b4f89c">More...</a><br /></td></tr>
<tr class="separator:ga83552b50de54c6779abdfef385b4f89c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga354b8c26e89bba54e106f242759efed1"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structProtobufCMethodDescriptor.html">ProtobufCMethodDescriptor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga354b8c26e89bba54e106f242759efed1">protobuf_c_service_descriptor_get_method_by_name</a> (const <a class="el" href="structProtobufCServiceDescriptor.html">ProtobufCServiceDescriptor</a> *desc, const char *name)</td></tr>
<tr class="memdesc:ga354b8c26e89bba54e106f242759efed1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look up a <code><a class="el" href="structProtobufCMethodDescriptor.html" title="Method descriptor.">ProtobufCMethodDescriptor</a></code> by name. <a href="group__api.html#ga354b8c26e89bba54e106f242759efed1">More...</a><br /></td></tr>
<tr class="separator:ga354b8c26e89bba54e106f242759efed1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga275cd4262dea729e6e9165c074306860"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__api.html#ga275cd4262dea729e6e9165c074306860">protobuf_c_buffer_simple_append</a> (<a class="el" href="structProtobufCBuffer.html">ProtobufCBuffer</a> *buffer, size_t len, const unsigned char *data)</td></tr>
<tr class="memdesc:ga275cd4262dea729e6e9165c074306860"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <code>append</code> method for <code><a class="el" href="structProtobufCBufferSimple.html" title="Simple buffer &quot;subclass&quot; of ProtobufCBuffer.">ProtobufCBufferSimple</a></code>. <a href="group__api.html#ga275cd4262dea729e6e9165c074306860">More...</a><br /></td></tr>
<tr class="separator:ga275cd4262dea729e6e9165c074306860"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae77a58ba287f0f9c0bf1107cee953f6f"><td class="memItemLeft" align="right" valign="top"><a id="gae77a58ba287f0f9c0bf1107cee953f6f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>protobuf_c_service_generated_init</b> (<a class="el" href="structProtobufCService.html">ProtobufCService</a> *service, const <a class="el" href="structProtobufCServiceDescriptor.html">ProtobufCServiceDescriptor</a> *descriptor, ProtobufCServiceDestroy destroy)</td></tr>
<tr class="separator:gae77a58ba287f0f9c0bf1107cee953f6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga81246002e01dcf8787750da3dbf410de"><td class="memItemLeft" align="right" valign="top"><a id="ga81246002e01dcf8787750da3dbf410de"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>protobuf_c_service_invoke_internal</b> (<a class="el" href="structProtobufCService.html">ProtobufCService</a> *service, unsigned method_index, const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *input, ProtobufCClosure closure, void *closure_data)</td></tr>
<tr class="separator:ga81246002e01dcf8787750da3dbf410de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga555dc7da9ccda34a7d8f776d5bc77687"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga555dc7da9ccda34a7d8f776d5bc77687">&#9670;&nbsp;</a></span>PROTOBUF_C_VERSION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PROTOBUF_C_VERSION&#160;&#160;&#160;&quot;1.3.3&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>The version of the protobuf-c headers, represented as a string using the same format as <a class="el" href="group__api.html#ga031a0a1c34d58d79d2af8b98d8ff76fd" title="Get the version of the protobuf-c library.">protobuf_c_version()</a>. </p>
</div>
</div>
<a id="gacd37d3d9cc386e0264a15c612fb9c3b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd37d3d9cc386e0264a15c612fb9c3b1">&#9670;&nbsp;</a></span>PROTOBUF_C_VERSION_NUMBER</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PROTOBUF_C_VERSION_NUMBER&#160;&#160;&#160;1003003</td>
</tr>
</table>
</div><div class="memdoc">
<p>The version of the protobuf-c headers, represented as an integer using the same format as <a class="el" href="group__api.html#ga9fec84349e6397619265d1058d8f8b20" title="Get the version of the protobuf-c library.">protobuf_c_version_number()</a>. </p>
</div>
</div>
<a id="gac0556b514daf74c37ce3c7a09b0a196e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac0556b514daf74c37ce3c7a09b0a196e">&#9670;&nbsp;</a></span>PROTOBUF_C_MIN_COMPILER_VERSION</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PROTOBUF_C_MIN_COMPILER_VERSION&#160;&#160;&#160;1000000</td>
</tr>
</table>
</div><div class="memdoc">
<p>The minimum protoc-c version which works with the current version of the protobuf-c headers. </p>
</div>
</div>
<a id="ga38a0bc9ff1d31284c7e0ff958103b960"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga38a0bc9ff1d31284c7e0ff958103b960">&#9670;&nbsp;</a></span>PROTOBUF_C_MESSAGE_INIT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PROTOBUF_C_MESSAGE_INIT</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">descriptor</td><td>)</td>
<td>&#160;&#160;&#160;{ descriptor, 0, NULL }</td>
</tr>
</table>
</div><div class="memdoc">
<p>Message initialiser. </p>
</div>
</div>
<a id="ga1d0aff4451c876c7fa4df6c590feb775"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1d0aff4451c876c7fa4df6c590feb775">&#9670;&nbsp;</a></span>PROTOBUF_C_BUFFER_SIMPLE_INIT</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PROTOBUF_C_BUFFER_SIMPLE_INIT</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">array_of_bytes</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">{ \</div>
<div class="line"> { <a class="code" href="group__api.html#ga275cd4262dea729e6e9165c074306860" title="The append method for ProtobufCBufferSimple.">protobuf_c_buffer_simple_append</a> }, \</div>
<div class="line"> sizeof(array_of_bytes), \</div>
<div class="line"> 0, \</div>
<div class="line"> (array_of_bytes), \</div>
<div class="line"> 0, \</div>
<div class="line"> NULL \</div>
<div class="line">}</div>
</div><!-- fragment -->
<p>Initialise a <code><a class="el" href="structProtobufCBufferSimple.html" title="Simple buffer &quot;subclass&quot; of ProtobufCBuffer.">ProtobufCBufferSimple</a></code> object. </p>
</div>
</div>
<a id="ga6ccc14c3d392606d993581def958522e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ccc14c3d392606d993581def958522e">&#9670;&nbsp;</a></span>PROTOBUF_C_BUFFER_SIMPLE_CLEAR</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PROTOBUF_C_BUFFER_SIMPLE_CLEAR</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">simp_buf</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> { \</div>
<div class="line"> if ((simp_buf)-&gt;must_free_data) { \</div>
<div class="line"> if ((simp_buf)-&gt;allocator != NULL) \</div>
<div class="line"> (simp_buf)-&gt;allocator-&gt;free( \</div>
<div class="line"> (simp_buf)-&gt;allocator, \</div>
<div class="line"> (simp_buf)-&gt;data); \</div>
<div class="line"> else \</div>
<div class="line"> free((simp_buf)-&gt;data); \</div>
<div class="line"> } \</div>
<div class="line">} <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
<p>Clear a <code><a class="el" href="structProtobufCBufferSimple.html" title="Simple buffer &quot;subclass&quot; of ProtobufCBuffer.">ProtobufCBufferSimple</a></code> object, freeing any allocated memory. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga98475218bcbd7a2171589414021c2633"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga98475218bcbd7a2171589414021c2633">&#9670;&nbsp;</a></span>protobuf_c_boolean</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef int <a class="el" href="group__api.html#ga98475218bcbd7a2171589414021c2633">protobuf_c_boolean</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Boolean type. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gaadb4aa7b15fbb0f75d96838516eee012"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaadb4aa7b15fbb0f75d96838516eee012">&#9670;&nbsp;</a></span>ProtobufCFieldFlag</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__api.html#gaadb4aa7b15fbb0f75d96838516eee012">ProtobufCFieldFlag</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Values for the <code>flags</code> word in <code><a class="el" href="structProtobufCFieldDescriptor.html" title="Describes a single field in a message.">ProtobufCFieldDescriptor</a></code>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggaadb4aa7b15fbb0f75d96838516eee012af024ba3c72b83253823211a7e38ed8e2"></a>PROTOBUF_C_FIELD_FLAG_PACKED&#160;</td><td class="fielddoc"><p>Set if the field is repeated and marked with the <code>packed</code> option. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaadb4aa7b15fbb0f75d96838516eee012a2f78d93c033bb4bee08818e5d10f26e2"></a>PROTOBUF_C_FIELD_FLAG_DEPRECATED&#160;</td><td class="fielddoc"><p>Set if the field is marked with the <code>deprecated</code> option. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggaadb4aa7b15fbb0f75d96838516eee012af4e5885518bbc5d4b3274697ff9e1690"></a>PROTOBUF_C_FIELD_FLAG_ONEOF&#160;</td><td class="fielddoc"><p>Set if the field is a member of a oneof (union). </p>
</td></tr>
</table>
</div>
</div>
<a id="ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5">&#9670;&nbsp;</a></span>ProtobufCLabel</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__api.html#ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5">ProtobufCLabel</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Message field rules. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://developers.google.com/protocol-buffers/docs/proto#simple">Defining A Message Type</a> in the Protocol Buffers documentation. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5a407dd9d769a377e156a6c945647bccbb"></a>PROTOBUF_C_LABEL_REQUIRED&#160;</td><td class="fielddoc"><p>A well-formed message must have exactly one of this field. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5abc861df7f96354b08c62397e5a1c1526"></a>PROTOBUF_C_LABEL_OPTIONAL&#160;</td><td class="fielddoc"><p>A well-formed message can have zero or one of this field (but not more than one). </p>
</td></tr>
<tr><td class="fieldname"><a id="gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5a2603fa5b6f8effddfedf61cd0b423d86"></a>PROTOBUF_C_LABEL_REPEATED&#160;</td><td class="fielddoc"><p>This field can be repeated any number of times (including zero) in a well-formed message. </p>
<p>The order of the repeated values will be preserved. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5a187e8a6468ac8deebfe39dc4cb996ff9"></a>PROTOBUF_C_LABEL_NONE&#160;</td><td class="fielddoc"><p>This field has no label. </p>
<p>This is valid only in proto3 and is equivalent to OPTIONAL but no "has" quantifier will be consulted. </p>
</td></tr>
</table>
</div>
</div>
<a id="ga784625188e935a74bc4577297b8c6802"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga784625188e935a74bc4577297b8c6802">&#9670;&nbsp;</a></span>ProtobufCType</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__api.html#ga784625188e935a74bc4577297b8c6802">ProtobufCType</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Field value types. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://developers.google.com/protocol-buffers/docs/proto#scalar">Scalar Value Types</a> in the Protocol Buffers documentation. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a54afdba64cff6fabf91b40fe31dec281"></a>PROTOBUF_C_TYPE_INT32&#160;</td><td class="fielddoc"><p>int32 </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a274ea5920a7c3a4c60ad44cb5b83ffe7"></a>PROTOBUF_C_TYPE_SINT32&#160;</td><td class="fielddoc"><p>signed int32 </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a85d90c50c21853765d70d46529daaa9d"></a>PROTOBUF_C_TYPE_SFIXED32&#160;</td><td class="fielddoc"><p>signed int32 (4 bytes) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a888a0648e4a7a60de4c85c9478a28943"></a>PROTOBUF_C_TYPE_INT64&#160;</td><td class="fielddoc"><p>int64 </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802adf45606aca4d584a2dcd7f6c6e65813e"></a>PROTOBUF_C_TYPE_SINT64&#160;</td><td class="fielddoc"><p>signed int64 </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a331f878e354cff599669429dbf9c4ce8"></a>PROTOBUF_C_TYPE_SFIXED64&#160;</td><td class="fielddoc"><p>signed int64 (8 bytes) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802ae09ad26f344a01b2553f018a2a1c6395"></a>PROTOBUF_C_TYPE_UINT32&#160;</td><td class="fielddoc"><p>unsigned int32 </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802aac3030ee5e8dd5344379ee300a82202e"></a>PROTOBUF_C_TYPE_FIXED32&#160;</td><td class="fielddoc"><p>unsigned int32 (4 bytes) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a7328d807873e30732d7b30d61f545943"></a>PROTOBUF_C_TYPE_UINT64&#160;</td><td class="fielddoc"><p>unsigned int64 </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a320288786ed4bd2c54c9e36b4c654b45"></a>PROTOBUF_C_TYPE_FIXED64&#160;</td><td class="fielddoc"><p>unsigned int64 (8 bytes) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a952cd3b1559601eda9e13bc031ce8124"></a>PROTOBUF_C_TYPE_FLOAT&#160;</td><td class="fielddoc"><p>float </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802ac9bd87c605d9b91c8ecbda3b8d0a21d0"></a>PROTOBUF_C_TYPE_DOUBLE&#160;</td><td class="fielddoc"><p>double </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802adabbab95a284dd090d4ad06d5efe15a4"></a>PROTOBUF_C_TYPE_BOOL&#160;</td><td class="fielddoc"><p>boolean </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a90b88be968f415cbc571fe9f594eefc3"></a>PROTOBUF_C_TYPE_ENUM&#160;</td><td class="fielddoc"><p>enumerated type </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a6b4c1ad9006305661fbc64cb510718a3"></a>PROTOBUF_C_TYPE_STRING&#160;</td><td class="fielddoc"><p>UTF-8 or ASCII string. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a3fcef85f6edbc4b69b4dc3590ad172e8"></a>PROTOBUF_C_TYPE_BYTES&#160;</td><td class="fielddoc"><p>arbitrary byte sequence </p>
</td></tr>
<tr><td class="fieldname"><a id="gga784625188e935a74bc4577297b8c6802a7f7176385f20b3c44770b99dbde34302"></a>PROTOBUF_C_TYPE_MESSAGE&#160;</td><td class="fielddoc"><p>nested message </p>
</td></tr>
</table>
</div>
</div>
<a id="ga58f35889606ee435ad29a83bcea23ca6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga58f35889606ee435ad29a83bcea23ca6">&#9670;&nbsp;</a></span>ProtobufCWireType</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__api.html#ga58f35889606ee435ad29a83bcea23ca6">ProtobufCWireType</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Field wire types. </p>
<dl class="section see"><dt>See also</dt><dd><a href="https://developers.google.com/protocol-buffers/docs/encoding#structure">Message Structure</a> in the Protocol Buffers documentation. </dd></dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga031a0a1c34d58d79d2af8b98d8ff76fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga031a0a1c34d58d79d2af8b98d8ff76fd">&#9670;&nbsp;</a></span>protobuf_c_version()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* protobuf_c_version </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the version of the protobuf-c library. </p>
<p>Note that this is the version of the library linked against, not the version of the headers compiled against.</p>
<dl class="section return"><dt>Returns</dt><dd>A string containing the version number of protobuf-c. </dd></dl>
</div>
</div>
<a id="ga9fec84349e6397619265d1058d8f8b20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9fec84349e6397619265d1058d8f8b20">&#9670;&nbsp;</a></span>protobuf_c_version_number()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t protobuf_c_version_number </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the version of the protobuf-c library. </p>
<p>Note that this is the version of the library linked against, not the version of the headers compiled against.</p>
<dl class="section return"><dt>Returns</dt><dd>A 32 bit unsigned integer containing the version number of protobuf-c, represented in base-10 as (MAJOR*1E6) + (MINOR*1E3) + PATCH. </dd></dl>
</div>
</div>
<a id="gad216b8390fd44cfbebdad70c4a5b4686"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad216b8390fd44cfbebdad70c4a5b4686">&#9670;&nbsp;</a></span>protobuf_c_enum_descriptor_get_value_by_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structProtobufCEnumValue.html">ProtobufCEnumValue</a>* protobuf_c_enum_descriptor_get_value_by_name </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCEnumDescriptor.html">ProtobufCEnumDescriptor</a> *&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Look up a <code><a class="el" href="structProtobufCEnumValue.html" title="Represents a single value of an enumeration.">ProtobufCEnumValue</a></code> from a <code><a class="el" href="structProtobufCEnumDescriptor.html" title="Describes an enumeration as a whole, with all of its values.">ProtobufCEnumDescriptor</a></code> by name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">desc</td><td>The <code><a class="el" href="structProtobufCEnumDescriptor.html" title="Describes an enumeration as a whole, with all of its values.">ProtobufCEnumDescriptor</a></code> object. </td></tr>
<tr><td class="paramname">name</td><td>The <code>name</code> field from the corresponding <code><a class="el" href="structProtobufCEnumValue.html" title="Represents a single value of an enumeration.">ProtobufCEnumValue</a></code> object to match. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code><a class="el" href="structProtobufCEnumValue.html" title="Represents a single value of an enumeration.">ProtobufCEnumValue</a></code> object. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">NULL</td><td>If not found or if the optimize_for = CODE_SIZE option was set. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga4a2eb3bb8c381fa05c7368be97ce96c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4a2eb3bb8c381fa05c7368be97ce96c4">&#9670;&nbsp;</a></span>protobuf_c_enum_descriptor_get_value()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structProtobufCEnumValue.html">ProtobufCEnumValue</a>* protobuf_c_enum_descriptor_get_value </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCEnumDescriptor.html">ProtobufCEnumDescriptor</a> *&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Look up a <code><a class="el" href="structProtobufCEnumValue.html" title="Represents a single value of an enumeration.">ProtobufCEnumValue</a></code> from a <code><a class="el" href="structProtobufCEnumDescriptor.html" title="Describes an enumeration as a whole, with all of its values.">ProtobufCEnumDescriptor</a></code> by numeric value. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">desc</td><td>The <code><a class="el" href="structProtobufCEnumDescriptor.html" title="Describes an enumeration as a whole, with all of its values.">ProtobufCEnumDescriptor</a></code> object. </td></tr>
<tr><td class="paramname">value</td><td>The <code>value</code> field from the corresponding <code><a class="el" href="structProtobufCEnumValue.html" title="Represents a single value of an enumeration.">ProtobufCEnumValue</a></code> object to match.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code><a class="el" href="structProtobufCEnumValue.html" title="Represents a single value of an enumeration.">ProtobufCEnumValue</a></code> object. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">NULL</td><td>If not found. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gaa26addf3543bdff9b65d283b1ee1c07f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa26addf3543bdff9b65d283b1ee1c07f">&#9670;&nbsp;</a></span>protobuf_c_message_descriptor_get_field_by_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structProtobufCFieldDescriptor.html">ProtobufCFieldDescriptor</a>* protobuf_c_message_descriptor_get_field_by_name </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCMessageDescriptor.html">ProtobufCMessageDescriptor</a> *&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Look up a <code><a class="el" href="structProtobufCFieldDescriptor.html" title="Describes a single field in a message.">ProtobufCFieldDescriptor</a></code> from a <code><a class="el" href="structProtobufCMessageDescriptor.html" title="Describes a message.">ProtobufCMessageDescriptor</a></code> by the name of the field. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">desc</td><td>The <code><a class="el" href="structProtobufCMessageDescriptor.html" title="Describes a message.">ProtobufCMessageDescriptor</a></code> object. </td></tr>
<tr><td class="paramname">name</td><td>The name of the field. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code><a class="el" href="structProtobufCFieldDescriptor.html" title="Describes a single field in a message.">ProtobufCFieldDescriptor</a></code> object. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">NULL</td><td>If not found or if the optimize_for = CODE_SIZE option was set. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga004d6ed4fe4cd4b89f3b56cabf773a9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga004d6ed4fe4cd4b89f3b56cabf773a9a">&#9670;&nbsp;</a></span>protobuf_c_message_descriptor_get_field()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structProtobufCFieldDescriptor.html">ProtobufCFieldDescriptor</a>* protobuf_c_message_descriptor_get_field </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCMessageDescriptor.html">ProtobufCMessageDescriptor</a> *&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Look up a <code><a class="el" href="structProtobufCFieldDescriptor.html" title="Describes a single field in a message.">ProtobufCFieldDescriptor</a></code> from a <code><a class="el" href="structProtobufCMessageDescriptor.html" title="Describes a message.">ProtobufCMessageDescriptor</a></code> by the tag value of the field. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">desc</td><td>The <code><a class="el" href="structProtobufCMessageDescriptor.html" title="Describes a message.">ProtobufCMessageDescriptor</a></code> object. </td></tr>
<tr><td class="paramname">value</td><td>The tag value of the field. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code><a class="el" href="structProtobufCFieldDescriptor.html" title="Describes a single field in a message.">ProtobufCFieldDescriptor</a></code> object. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">NULL</td><td>If not found. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga2c92b130142222b96991ffceb053828d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2c92b130142222b96991ffceb053828d">&#9670;&nbsp;</a></span>protobuf_c_message_get_packed_size()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t protobuf_c_message_get_packed_size </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *&#160;</td>
<td class="paramname"><em>message</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Determine the number of bytes required to store the serialised message. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">message</td><td>The message object to serialise. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes. </dd></dl>
</div>
</div>
<a id="ga704fdc1201b290834095720472090e9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga704fdc1201b290834095720472090e9d">&#9670;&nbsp;</a></span>protobuf_c_message_pack()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t protobuf_c_message_pack </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>out</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Serialise a message from its in-memory representation. </p>
<p>This function stores the serialised bytes of the message in a pre-allocated buffer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">message</td><td>The message object to serialise. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Buffer to store the bytes of the serialised message. This buffer must have enough space to store the packed message. Use <a class="el" href="group__api.html#ga2c92b130142222b96991ffceb053828d" title="Determine the number of bytes required to store the serialised message.">protobuf_c_message_get_packed_size()</a> to determine the number of bytes required. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes stored in <code>out</code>. </dd></dl>
</div>
</div>
<a id="ga0883bacc5a5b0ba927fdd79204f9ad68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0883bacc5a5b0ba927fdd79204f9ad68">&#9670;&nbsp;</a></span>protobuf_c_message_pack_to_buffer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t protobuf_c_message_pack_to_buffer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structProtobufCBuffer.html">ProtobufCBuffer</a> *&#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>Serialise a message from its in-memory representation to a virtual buffer. </p>
<p>This function calls the <code>append</code> method of a <code><a class="el" href="structProtobufCBuffer.html" title="Structure for defining a virtual append-only buffer.">ProtobufCBuffer</a></code> object to consume the bytes generated by the serialiser.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">message</td><td>The message object to serialise. </td></tr>
<tr><td class="paramname">buffer</td><td>The virtual buffer object. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of bytes passed to the virtual buffer. </dd></dl>
</div>
</div>
<a id="gacc355835c22e19877df07a44f2f5b920"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacc355835c22e19877df07a44f2f5b920">&#9670;&nbsp;</a></span>protobuf_c_message_unpack()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a>* protobuf_c_message_unpack </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCMessageDescriptor.html">ProtobufCMessageDescriptor</a> *&#160;</td>
<td class="paramname"><em>descriptor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structProtobufCAllocator.html">ProtobufCAllocator</a> *&#160;</td>
<td class="paramname"><em>allocator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#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>Unpack a serialised message into an in-memory representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">descriptor</td><td>The message descriptor. </td></tr>
<tr><td class="paramname">allocator</td><td><code><a class="el" href="structProtobufCAllocator.html" title="Structure for defining a custom memory allocator.">ProtobufCAllocator</a></code> to use for memory allocation. May be NULL to specify the default allocator. </td></tr>
<tr><td class="paramname">len</td><td>Length in bytes of the serialised message. </td></tr>
<tr><td class="paramname">data</td><td>Pointer to the serialised message. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>An unpacked message object. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">NULL</td><td>If an error occurred during unpacking. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gaf1cdf87e9105fb1517d2406a6ca14fbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf1cdf87e9105fb1517d2406a6ca14fbe">&#9670;&nbsp;</a></span>protobuf_c_message_free_unpacked()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void protobuf_c_message_free_unpacked </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *&#160;</td>
<td class="paramname"><em>message</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structProtobufCAllocator.html">ProtobufCAllocator</a> *&#160;</td>
<td class="paramname"><em>allocator</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Free an unpacked message object. </p>
<p>This function should be used to deallocate the memory used by a call to <a class="el" href="group__api.html#gacc355835c22e19877df07a44f2f5b920" title="Unpack a serialised message into an in-memory representation.">protobuf_c_message_unpack()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">message</td><td>The message object to free. May be NULL. </td></tr>
<tr><td class="paramname">allocator</td><td><code><a class="el" href="structProtobufCAllocator.html" title="Structure for defining a custom memory allocator.">ProtobufCAllocator</a></code> to use for memory deallocation. May be NULL to specify the default allocator. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga34185ffb0dea60bdf58a24816afb180a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga34185ffb0dea60bdf58a24816afb180a">&#9670;&nbsp;</a></span>protobuf_c_message_check()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__api.html#ga98475218bcbd7a2171589414021c2633">protobuf_c_boolean</a> protobuf_c_message_check </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCMessage.html">ProtobufCMessage</a> *&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check the validity of a message object. </p>
<p>Makes sure all required fields (<code>PROTOBUF_C_LABEL_REQUIRED</code>) are present. Recursively checks nested messages.</p>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">TRUE</td><td>Message is valid. </td></tr>
<tr><td class="paramname">FALSE</td><td>Message is invalid. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gac3b468bf04d5b55955a105e41bef0924"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac3b468bf04d5b55955a105e41bef0924">&#9670;&nbsp;</a></span>protobuf_c_message_init()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void protobuf_c_message_init </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCMessageDescriptor.html">ProtobufCMessageDescriptor</a> *&#160;</td>
<td class="paramname"><em>descriptor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>message</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialise a message object from a message descriptor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">descriptor</td><td>Message descriptor. </td></tr>
<tr><td class="paramname">message</td><td>Allocated block of memory of size <code>descriptor-&gt;sizeof_message</code>. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga83552b50de54c6779abdfef385b4f89c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga83552b50de54c6779abdfef385b4f89c">&#9670;&nbsp;</a></span>protobuf_c_service_destroy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void protobuf_c_service_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structProtobufCService.html">ProtobufCService</a> *&#160;</td>
<td class="paramname"><em>service</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Free a service. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">service</td><td>The service object to free. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga354b8c26e89bba54e106f242759efed1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga354b8c26e89bba54e106f242759efed1">&#9670;&nbsp;</a></span>protobuf_c_service_descriptor_get_method_by_name()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structProtobufCMethodDescriptor.html">ProtobufCMethodDescriptor</a>* protobuf_c_service_descriptor_get_method_by_name </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structProtobufCServiceDescriptor.html">ProtobufCServiceDescriptor</a> *&#160;</td>
<td class="paramname"><em>desc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Look up a <code><a class="el" href="structProtobufCMethodDescriptor.html" title="Method descriptor.">ProtobufCMethodDescriptor</a></code> by name. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">desc</td><td>Service descriptor. </td></tr>
<tr><td class="paramname">name</td><td>Name of the method.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <code><a class="el" href="structProtobufCMethodDescriptor.html" title="Method descriptor.">ProtobufCMethodDescriptor</a></code> object. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
<table class="retval">
<tr><td class="paramname">NULL</td><td>If not found or if the optimize_for = CODE_SIZE option was set. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga275cd4262dea729e6e9165c074306860"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga275cd4262dea729e6e9165c074306860">&#9670;&nbsp;</a></span>protobuf_c_buffer_simple_append()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void protobuf_c_buffer_simple_append </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structProtobufCBuffer.html">ProtobufCBuffer</a> *&#160;</td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const unsigned char *&#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>The <code>append</code> method for <code><a class="el" href="structProtobufCBufferSimple.html" title="Simple buffer &quot;subclass&quot; of ProtobufCBuffer.">ProtobufCBufferSimple</a></code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>The buffer object to append to. Must actually be a <code><a class="el" href="structProtobufCBufferSimple.html" title="Simple buffer &quot;subclass&quot; of ProtobufCBuffer.">ProtobufCBufferSimple</a></code> object. </td></tr>
<tr><td class="paramname">len</td><td>Number of bytes in <code>data</code>. </td></tr>
<tr><td class="paramname">data</td><td>Data to append. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.18 </li>
</ul>
</div>
</body>
</html>