\hypertarget{group__api}{}\section{Public A\+PI}
\label{group__api}\index{Public A\+PI@{Public A\+PI}}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator}
\item 
struct \hyperlink{struct_protobuf_c_binary_data}{Protobuf\+C\+Binary\+Data}
\item 
struct \hyperlink{struct_protobuf_c_buffer}{Protobuf\+C\+Buffer}
\item 
struct \hyperlink{struct_protobuf_c_buffer_simple}{Protobuf\+C\+Buffer\+Simple}
\item 
struct \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor}
\item 
struct \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}
\item 
struct \hyperlink{struct_protobuf_c_enum_value_index}{Protobuf\+C\+Enum\+Value\+Index}
\item 
struct \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor}
\item 
struct \hyperlink{struct_protobuf_c_int_range}{Protobuf\+C\+Int\+Range}
\item 
struct \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message}
\item 
struct \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor}
\item 
struct \hyperlink{struct_protobuf_c_message_unknown_field}{Protobuf\+C\+Message\+Unknown\+Field}
\item 
struct \hyperlink{struct_protobuf_c_method_descriptor}{Protobuf\+C\+Method\+Descriptor}
\item 
struct \hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service}
\item 
struct \hyperlink{struct_protobuf_c_service_descriptor}{Protobuf\+C\+Service\+Descriptor}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{group__api_ga555dc7da9ccda34a7d8f776d5bc77687}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+ON}~\char`\"{}1.\+1.\+1\char`\"{}
\item 
\#define \hyperlink{group__api_gacd37d3d9cc386e0264a15c612fb9c3b1}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+N\+U\+M\+B\+ER}~1001001
\item 
\#define \hyperlink{group__api_gac0556b514daf74c37ce3c7a09b0a196e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+I\+N\+\_\+\+C\+O\+M\+P\+I\+L\+E\+R\+\_\+\+V\+E\+R\+S\+I\+ON}~1000000
\item 
\#define \hyperlink{group__api_ga38a0bc9ff1d31284c7e0ff958103b960}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+I\+N\+IT}(descriptor)~\{ descriptor, 0, N\+U\+LL \}
\item 
\#define \hyperlink{group__api_ga1d0aff4451c876c7fa4df6c590feb775}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+I\+N\+IT}(array\+\_\+of\+\_\+bytes)
\item 
\#define \hyperlink{group__api_ga6ccc14c3d392606d993581def958522e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+C\+L\+E\+AR}(simp\+\_\+buf)
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator} \hyperlink{group__api_gae3e452457b865fedbe6bce6815cc669a}{Protobuf\+C\+Allocator}
\item 
typedef struct \hyperlink{struct_protobuf_c_binary_data}{Protobuf\+C\+Binary\+Data} \hyperlink{group__api_ga7d46d824f3e88e441e53e6815ab6eaed}{Protobuf\+C\+Binary\+Data}
\item 
typedef struct \hyperlink{struct_protobuf_c_buffer}{Protobuf\+C\+Buffer} \hyperlink{group__api_ga9bad2a8caf1700d0e5e956cb2cfea69f}{Protobuf\+C\+Buffer}
\item 
typedef struct \hyperlink{struct_protobuf_c_buffer_simple}{Protobuf\+C\+Buffer\+Simple} \hyperlink{group__api_ga53dc593f7757d0744ae72516491a840d}{Protobuf\+C\+Buffer\+Simple}
\item 
typedef struct \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor} \hyperlink{group__api_ga68d893f34044a51be8fdb0d724ed262c}{Protobuf\+C\+Enum\+Descriptor}
\item 
typedef struct \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value} \hyperlink{group__api_gab66637d5bede4add0332caade5ade3fb}{Protobuf\+C\+Enum\+Value}
\item 
typedef struct \hyperlink{struct_protobuf_c_enum_value_index}{Protobuf\+C\+Enum\+Value\+Index} \hyperlink{group__api_ga07a9098a2f6935b5b47f53a9c26a0c5d}{Protobuf\+C\+Enum\+Value\+Index}
\item 
typedef struct \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor} \hyperlink{group__api_ga89dac14349ab99bb058feaeef710e94a}{Protobuf\+C\+Field\+Descriptor}
\item 
typedef struct \hyperlink{struct_protobuf_c_int_range}{Protobuf\+C\+Int\+Range} \hyperlink{group__api_ga0e161d80d7378e754bb5a4acb8688ec0}{Protobuf\+C\+Int\+Range}
\item 
typedef struct \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} \hyperlink{group__api_ga7bc9dc78a11e7a692a32ebd464433d1b}{Protobuf\+C\+Message}
\item 
typedef struct \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} \hyperlink{group__api_ga5cd0aa842234ce048980d0dd744cceac}{Protobuf\+C\+Message\+Descriptor}
\item 
typedef struct \hyperlink{struct_protobuf_c_message_unknown_field}{Protobuf\+C\+Message\+Unknown\+Field} \hyperlink{group__api_ga8af8404a94fe9d4553fd5740f26772ca}{Protobuf\+C\+Message\+Unknown\+Field}
\item 
typedef struct \hyperlink{struct_protobuf_c_method_descriptor}{Protobuf\+C\+Method\+Descriptor} \hyperlink{group__api_gabe1250347a0631ede218fec706a02fa6}{Protobuf\+C\+Method\+Descriptor}
\item 
typedef struct \hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} \hyperlink{group__api_gaf99490e1a44cbe332309ba6cab13ea33}{Protobuf\+C\+Service}
\item 
typedef struct \hyperlink{struct_protobuf_c_service_descriptor}{Protobuf\+C\+Service\+Descriptor} \hyperlink{group__api_ga1a48d6d82542634b2b02fa83fd371f26}{Protobuf\+C\+Service\+Descriptor}
\item 
typedef int \hyperlink{group__api_ga98475218bcbd7a2171589414021c2633}{protobuf\+\_\+c\+\_\+boolean}
\item 
typedef void($\ast$ \hyperlink{group__api_ga7274779a94ac8cff4272a03eb593faeb}{Protobuf\+C\+Closure}) (const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$, void $\ast$closure\+\_\+data)
\item 
typedef void($\ast$ \hyperlink{group__api_gab04aebb285c9c4bd8fa934235e2af64f}{Protobuf\+C\+Message\+Init}) (\hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$)
\item 
typedef void($\ast$ \hyperlink{group__api_gadd5b502a1486fb7e8250848603144abd}{Protobuf\+C\+Service\+Destroy}) (\hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} $\ast$)
\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{group__api_gaadb4aa7b15fbb0f75d96838516eee012}{Protobuf\+C\+Field\+Flag} \{ \hyperlink{group__api_ggaadb4aa7b15fbb0f75d96838516eee012af024ba3c72b83253823211a7e38ed8e2}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+P\+A\+C\+K\+ED} = (1 $<$$<$ 0), 
\hyperlink{group__api_ggaadb4aa7b15fbb0f75d96838516eee012a2f78d93c033bb4bee08818e5d10f26e2}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} = (1 $<$$<$ 1), 
\hyperlink{group__api_ggaadb4aa7b15fbb0f75d96838516eee012af4e5885518bbc5d4b3274697ff9e1690}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+O\+N\+E\+OF} = (1 $<$$<$ 2)
 \}
\item 
enum \hyperlink{group__api_ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5}{Protobuf\+C\+Label} \{ \hyperlink{group__api_gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5a407dd9d769a377e156a6c945647bccbb}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+Q\+U\+I\+R\+ED}, 
\hyperlink{group__api_gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5abc861df7f96354b08c62397e5a1c1526}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+O\+P\+T\+I\+O\+N\+AL}, 
\hyperlink{group__api_gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5a2603fa5b6f8effddfedf61cd0b423d86}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+P\+E\+A\+T\+ED}
 \}
\item 
enum \hyperlink{group__api_ga784625188e935a74bc4577297b8c6802}{Protobuf\+C\+Type} \{ \newline
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a54afdba64cff6fabf91b40fe31dec281}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T32}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a274ea5920a7c3a4c60ad44cb5b83ffe7}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T32}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a85d90c50c21853765d70d46529daaa9d}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D32}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a888a0648e4a7a60de4c85c9478a28943}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64}, 
\newline
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802adf45606aca4d584a2dcd7f6c6e65813e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T64}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a331f878e354cff599669429dbf9c4ce8}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D64}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802ae09ad26f344a01b2553f018a2a1c6395}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T32}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802aac3030ee5e8dd5344379ee300a82202e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D32}, 
\newline
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a7328d807873e30732d7b30d61f545943}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a320288786ed4bd2c54c9e36b4c654b45}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D64}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a952cd3b1559601eda9e13bc031ce8124}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802ac9bd87c605d9b91c8ecbda3b8d0a21d0}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE}, 
\newline
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802adabbab95a284dd090d4ad06d5efe15a4}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+O\+OL}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a90b88be968f415cbc571fe9f594eefc3}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+N\+UM}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a6b4c1ad9006305661fbc64cb510718a3}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG}, 
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a3fcef85f6edbc4b69b4dc3590ad172e8}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+Y\+T\+ES}, 
\newline
\hyperlink{group__api_gga784625188e935a74bc4577297b8c6802a7f7176385f20b3c44770b99dbde34302}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+E\+S\+S\+A\+GE}
 \}
\item 
enum \hyperlink{group__api_ga58f35889606ee435ad29a83bcea23ca6}{Protobuf\+C\+Wire\+Type} \{ \hyperlink{group__api_gga58f35889606ee435ad29a83bcea23ca6ad9cff26eff936f5ba95c039a63b9d1b3}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+V\+A\+R\+I\+NT} = 0, 
\hyperlink{group__api_gga58f35889606ee435ad29a83bcea23ca6acddea9eb6cfa51d2515770b358b24f8f}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+64\+B\+IT} = 1, 
\hyperlink{group__api_gga58f35889606ee435ad29a83bcea23ca6abee5e7e065cb28f5d9ef94ad62863edc}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+E\+N\+G\+T\+H\+\_\+\+P\+R\+E\+F\+I\+X\+ED} = 2, 
\hyperlink{group__api_gga58f35889606ee435ad29a83bcea23ca6a005bd9cbc420ac8413f7c624eb2d5cee}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+32\+B\+IT} = 5
 \}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const char $\ast$ \hyperlink{group__api_gac6883ba449f721c0554fc092379e6c3d}{protobuf\+\_\+c\+\_\+version} (void)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} \hyperlink{group__api_ga67715991d67ccd3643e9a300e8943aac}{protobuf\+\_\+c\+\_\+version\+\_\+number} (void)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value} $\ast$ \hyperlink{group__api_ga88973caa211372b4aa10f2ece48b3731}{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value\+\_\+by\+\_\+name} (const \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor} $\ast$desc, const char $\ast$name)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value} $\ast$ \hyperlink{group__api_ga3494dba32b2575e92a309781c2da705d}{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value} (const \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor} $\ast$desc, int value)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor} $\ast$ \hyperlink{group__api_gabff20d8b224f8dbff9046831a510e531}{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field\+\_\+by\+\_\+name} (const \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} $\ast$desc, const char $\ast$name)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor} $\ast$ \hyperlink{group__api_ga5fbd141ad4ba5f2da59b0bb0a7f806a8}{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field} (const \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} $\ast$desc, unsigned value)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} size\+\_\+t \hyperlink{group__api_gafae6d8624073687eae8a9c597a1fcbcc}{protobuf\+\_\+c\+\_\+message\+\_\+get\+\_\+packed\+\_\+size} (const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$message)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} size\+\_\+t \hyperlink{group__api_ga087e379c203051e66732010c1828965e}{protobuf\+\_\+c\+\_\+message\+\_\+pack} (const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$message, \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$out)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} size\+\_\+t \hyperlink{group__api_gaa1cde08f1ad1408209ed427f9e0647bc}{protobuf\+\_\+c\+\_\+message\+\_\+pack\+\_\+to\+\_\+buffer} (const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$message, \hyperlink{struct_protobuf_c_buffer}{Protobuf\+C\+Buffer} $\ast$buffer)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$ \hyperlink{group__api_ga1e88dc4ae2aa7d5bdb593662ba212f22}{protobuf\+\_\+c\+\_\+message\+\_\+unpack} (const \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} $\ast$descriptor, \hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator} $\ast$allocator, size\+\_\+t len, const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$data)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void \hyperlink{group__api_ga67d71b3349faa97e879e888e88c8029e}{protobuf\+\_\+c\+\_\+message\+\_\+free\+\_\+unpacked} (\hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$message, \hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator} $\ast$allocator)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} \hyperlink{group__api_ga98475218bcbd7a2171589414021c2633}{protobuf\+\_\+c\+\_\+boolean} \hyperlink{group__api_ga43e69373b62b8fcf75fe7dc4815014bf}{protobuf\+\_\+c\+\_\+message\+\_\+check} (const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void \hyperlink{group__api_gac95ea94b837c65898350fe2e1c834b53}{protobuf\+\_\+c\+\_\+message\+\_\+init} (const \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} $\ast$descriptor, void $\ast$message)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void \hyperlink{group__api_ga4056e05b3db2dbfeeea3bec6af267c0b}{protobuf\+\_\+c\+\_\+service\+\_\+destroy} (\hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} $\ast$service)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_method_descriptor}{Protobuf\+C\+Method\+Descriptor} $\ast$ \hyperlink{group__api_ga811da2d10f3810b4b91fd64684a4b14f}{protobuf\+\_\+c\+\_\+service\+\_\+descriptor\+\_\+get\+\_\+method\+\_\+by\+\_\+name} (const \hyperlink{struct_protobuf_c_service_descriptor}{Protobuf\+C\+Service\+Descriptor} $\ast$desc, const char $\ast$name)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void \hyperlink{group__api_ga111978e3c2c5f485b730a60ccb9921d1}{protobuf\+\_\+c\+\_\+buffer\+\_\+simple\+\_\+append} (\hyperlink{struct_protobuf_c_buffer}{Protobuf\+C\+Buffer} $\ast$buffer, size\+\_\+t len, const unsigned char $\ast$data)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void \hyperlink{group__api_ga9698f046870360eaa186cda653949763}{protobuf\+\_\+c\+\_\+service\+\_\+generated\+\_\+init} (\hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} $\ast$service, const \hyperlink{struct_protobuf_c_service_descriptor}{Protobuf\+C\+Service\+Descriptor} $\ast$descriptor, \hyperlink{group__api_gadd5b502a1486fb7e8250848603144abd}{Protobuf\+C\+Service\+Destroy} destroy)
\item 
\hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void \hyperlink{group__api_ga73fdddd18145c2bbf1b3dc88987eb765}{protobuf\+\_\+c\+\_\+service\+\_\+invoke\+\_\+internal} (\hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} $\ast$service, unsigned method\+\_\+index, const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$input, \hyperlink{group__api_ga7274779a94ac8cff4272a03eb593faeb}{Protobuf\+C\+Closure} closure, void $\ast$closure\+\_\+data)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This is the public A\+PI for {\ttfamily libprotobuf-\/c}. These interfaces are stable and subject to Semantic Versioning guarantees. 

\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__api_ga6ccc14c3d392606d993581def958522e}\label{group__api_ga6ccc14c3d392606d993581def958522e}} 
\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+C\+L\+E\+AR@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+C\+L\+E\+AR}}
\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+C\+L\+E\+AR@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+C\+L\+E\+AR}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+C\+L\+E\+AR}{PROTOBUF\_C\_BUFFER\_SIMPLE\_CLEAR}}
{\footnotesize\ttfamily \#define P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+C\+L\+E\+AR(\begin{DoxyParamCaption}\item[{}]{simp\+\_\+buf }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                                                    \(\backslash\)
    if ((simp\_buf)->must\_free\_data) \{                               \(\backslash\)
        if ((simp\_buf)->allocator != NULL)                      \(\backslash\)
            (simp\_buf)->allocator->free(                    \(\backslash\)
                (simp\_buf)->allocator,                  \(\backslash\)
                (simp\_buf)->data);          \(\backslash\)
        else                                                    \(\backslash\)
            free((simp\_buf)->data);                         \(\backslash\)
    \}                                                               \(\backslash\)
\} \textcolor{keywordflow}{while} (0)
\end{DoxyCode}
Clear a {\ttfamily \hyperlink{struct_protobuf_c_buffer_simple}{Protobuf\+C\+Buffer\+Simple}} object, freeing any allocated memory. 

Definition at line 1047 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga1d0aff4451c876c7fa4df6c590feb775}\label{group__api_ga1d0aff4451c876c7fa4df6c590feb775}} 
\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+I\+N\+IT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+I\+N\+IT}}
\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+I\+N\+IT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+I\+N\+IT}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+I\+N\+IT}{PROTOBUF\_C\_BUFFER\_SIMPLE\_INIT}}
{\footnotesize\ttfamily \#define P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+M\+P\+L\+E\+\_\+\+I\+N\+IT(\begin{DoxyParamCaption}\item[{}]{array\+\_\+of\+\_\+bytes }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\{                                                                       \(\backslash\)
    \{ \hyperlink{group__api_ga111978e3c2c5f485b730a60ccb9921d1}{protobuf\_c\_buffer\_simple\_append} \},                            \(\backslash\)
    sizeof(array\_of\_bytes),                                         \(\backslash\)
    0,                                                              \(\backslash\)
    (array\_of\_bytes),                                               \(\backslash\)
    0,                                                              \(\backslash\)
    NULL                                                            \(\backslash\)
\}
\end{DoxyCode}
Initialise a {\ttfamily \hyperlink{struct_protobuf_c_buffer_simple}{Protobuf\+C\+Buffer\+Simple}} object. 

Definition at line 1034 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga38a0bc9ff1d31284c7e0ff958103b960}\label{group__api_ga38a0bc9ff1d31284c7e0ff958103b960}} 
\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+I\+N\+IT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+I\+N\+IT}}
\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+I\+N\+IT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+I\+N\+IT}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+I\+N\+IT}{PROTOBUF\_C\_MESSAGE\_INIT}}
{\footnotesize\ttfamily \#define P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+E\+S\+S\+A\+G\+E\+\_\+\+I\+N\+IT(\begin{DoxyParamCaption}\item[{}]{descriptor }\end{DoxyParamCaption})~\{ descriptor, 0, N\+U\+LL \}}

Message initialiser. 

Definition at line 986 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_gac0556b514daf74c37ce3c7a09b0a196e}\label{group__api_gac0556b514daf74c37ce3c7a09b0a196e}} 
\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+I\+N\+\_\+\+C\+O\+M\+P\+I\+L\+E\+R\+\_\+\+V\+E\+R\+S\+I\+ON@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+I\+N\+\_\+\+C\+O\+M\+P\+I\+L\+E\+R\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+I\+N\+\_\+\+C\+O\+M\+P\+I\+L\+E\+R\+\_\+\+V\+E\+R\+S\+I\+ON@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+I\+N\+\_\+\+C\+O\+M\+P\+I\+L\+E\+R\+\_\+\+V\+E\+R\+S\+I\+ON}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+I\+N\+\_\+\+C\+O\+M\+P\+I\+L\+E\+R\+\_\+\+V\+E\+R\+S\+I\+ON}{PROTOBUF\_C\_MIN\_COMPILER\_VERSION}}
{\footnotesize\ttfamily \#define P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+M\+I\+N\+\_\+\+C\+O\+M\+P\+I\+L\+E\+R\+\_\+\+V\+E\+R\+S\+I\+ON~1000000}

The minimum protoc-\/c version which works with the current version of the protobuf-\/c headers. 

Definition at line 796 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga555dc7da9ccda34a7d8f776d5bc77687}\label{group__api_ga555dc7da9ccda34a7d8f776d5bc77687}} 
\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+ON@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+ON}}
\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+ON@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+ON}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+ON}{PROTOBUF\_C\_VERSION}}
{\footnotesize\ttfamily \#define P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+ON~\char`\"{}1.\+1.\+1\char`\"{}}

The version of the protobuf-\/c headers, represented as a string using the same format as \hyperlink{group__api_gac6883ba449f721c0554fc092379e6c3d}{protobuf\+\_\+c\+\_\+version()}. 

Definition at line 784 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_gacd37d3d9cc386e0264a15c612fb9c3b1}\label{group__api_gacd37d3d9cc386e0264a15c612fb9c3b1}} 
\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+N\+U\+M\+B\+ER@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+N\+U\+M\+B\+ER}}
\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+N\+U\+M\+B\+ER@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+N\+U\+M\+B\+ER}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+N\+U\+M\+B\+ER}{PROTOBUF\_C\_VERSION\_NUMBER}}
{\footnotesize\ttfamily \#define P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+N\+U\+M\+B\+ER~1001001}

The version of the protobuf-\/c headers, represented as an integer using the same format as \hyperlink{group__api_ga67715991d67ccd3643e9a300e8943aac}{protobuf\+\_\+c\+\_\+version\+\_\+number()}. 

Definition at line 790 of file protobuf-\/c.\+h.



\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__api_ga98475218bcbd7a2171589414021c2633}\label{group__api_ga98475218bcbd7a2171589414021c2633}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+boolean@{protobuf\+\_\+c\+\_\+boolean}}
\index{protobuf\+\_\+c\+\_\+boolean@{protobuf\+\_\+c\+\_\+boolean}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+boolean}{protobuf\_c\_boolean}}
{\footnotesize\ttfamily typedef int \hyperlink{group__api_ga98475218bcbd7a2171589414021c2633}{protobuf\+\_\+c\+\_\+boolean}}

Boolean type. 

Definition at line 366 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_gae3e452457b865fedbe6bce6815cc669a}\label{group__api_gae3e452457b865fedbe6bce6815cc669a}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Allocator@{Protobuf\+C\+Allocator}}
\index{Protobuf\+C\+Allocator@{Protobuf\+C\+Allocator}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Allocator}{ProtobufCAllocator}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator} \hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator}}



Definition at line 349 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga7d46d824f3e88e441e53e6815ab6eaed}\label{group__api_ga7d46d824f3e88e441e53e6815ab6eaed}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Binary\+Data@{Protobuf\+C\+Binary\+Data}}
\index{Protobuf\+C\+Binary\+Data@{Protobuf\+C\+Binary\+Data}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Binary\+Data}{ProtobufCBinaryData}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_binary_data}{Protobuf\+C\+Binary\+Data} \hyperlink{struct_protobuf_c_binary_data}{Protobuf\+C\+Binary\+Data}}



Definition at line 350 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga9bad2a8caf1700d0e5e956cb2cfea69f}\label{group__api_ga9bad2a8caf1700d0e5e956cb2cfea69f}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Buffer@{Protobuf\+C\+Buffer}}
\index{Protobuf\+C\+Buffer@{Protobuf\+C\+Buffer}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Buffer}{ProtobufCBuffer}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_buffer}{Protobuf\+C\+Buffer} \hyperlink{struct_protobuf_c_buffer}{Protobuf\+C\+Buffer}}



Definition at line 351 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga53dc593f7757d0744ae72516491a840d}\label{group__api_ga53dc593f7757d0744ae72516491a840d}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Buffer\+Simple@{Protobuf\+C\+Buffer\+Simple}}
\index{Protobuf\+C\+Buffer\+Simple@{Protobuf\+C\+Buffer\+Simple}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Buffer\+Simple}{ProtobufCBufferSimple}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_buffer_simple}{Protobuf\+C\+Buffer\+Simple} \hyperlink{struct_protobuf_c_buffer_simple}{Protobuf\+C\+Buffer\+Simple}}



Definition at line 352 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga7274779a94ac8cff4272a03eb593faeb}\label{group__api_ga7274779a94ac8cff4272a03eb593faeb}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Closure@{Protobuf\+C\+Closure}}
\index{Protobuf\+C\+Closure@{Protobuf\+C\+Closure}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Closure}{ProtobufCClosure}}
{\footnotesize\ttfamily typedef void($\ast$ Protobuf\+C\+Closure) (const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$, void $\ast$closure\+\_\+data)}



Definition at line 368 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga68d893f34044a51be8fdb0d724ed262c}\label{group__api_ga68d893f34044a51be8fdb0d724ed262c}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Enum\+Descriptor@{Protobuf\+C\+Enum\+Descriptor}}
\index{Protobuf\+C\+Enum\+Descriptor@{Protobuf\+C\+Enum\+Descriptor}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Enum\+Descriptor}{ProtobufCEnumDescriptor}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor} \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor}}



Definition at line 353 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_gab66637d5bede4add0332caade5ade3fb}\label{group__api_gab66637d5bede4add0332caade5ade3fb}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Enum\+Value@{Protobuf\+C\+Enum\+Value}}
\index{Protobuf\+C\+Enum\+Value@{Protobuf\+C\+Enum\+Value}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Enum\+Value}{ProtobufCEnumValue}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value} \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}}



Definition at line 354 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga07a9098a2f6935b5b47f53a9c26a0c5d}\label{group__api_ga07a9098a2f6935b5b47f53a9c26a0c5d}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Enum\+Value\+Index@{Protobuf\+C\+Enum\+Value\+Index}}
\index{Protobuf\+C\+Enum\+Value\+Index@{Protobuf\+C\+Enum\+Value\+Index}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Enum\+Value\+Index}{ProtobufCEnumValueIndex}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_enum_value_index}{Protobuf\+C\+Enum\+Value\+Index} \hyperlink{struct_protobuf_c_enum_value_index}{Protobuf\+C\+Enum\+Value\+Index}}



Definition at line 355 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga89dac14349ab99bb058feaeef710e94a}\label{group__api_ga89dac14349ab99bb058feaeef710e94a}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Field\+Descriptor@{Protobuf\+C\+Field\+Descriptor}}
\index{Protobuf\+C\+Field\+Descriptor@{Protobuf\+C\+Field\+Descriptor}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Field\+Descriptor}{ProtobufCFieldDescriptor}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor} \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor}}



Definition at line 356 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga0e161d80d7378e754bb5a4acb8688ec0}\label{group__api_ga0e161d80d7378e754bb5a4acb8688ec0}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Int\+Range@{Protobuf\+C\+Int\+Range}}
\index{Protobuf\+C\+Int\+Range@{Protobuf\+C\+Int\+Range}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Int\+Range}{ProtobufCIntRange}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_int_range}{Protobuf\+C\+Int\+Range} \hyperlink{struct_protobuf_c_int_range}{Protobuf\+C\+Int\+Range}}



Definition at line 357 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga7bc9dc78a11e7a692a32ebd464433d1b}\label{group__api_ga7bc9dc78a11e7a692a32ebd464433d1b}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Message@{Protobuf\+C\+Message}}
\index{Protobuf\+C\+Message@{Protobuf\+C\+Message}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Message}{ProtobufCMessage}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message}}



Definition at line 358 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga5cd0aa842234ce048980d0dd744cceac}\label{group__api_ga5cd0aa842234ce048980d0dd744cceac}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Message\+Descriptor@{Protobuf\+C\+Message\+Descriptor}}
\index{Protobuf\+C\+Message\+Descriptor@{Protobuf\+C\+Message\+Descriptor}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Message\+Descriptor}{ProtobufCMessageDescriptor}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor}}



Definition at line 359 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_gab04aebb285c9c4bd8fa934235e2af64f}\label{group__api_gab04aebb285c9c4bd8fa934235e2af64f}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Message\+Init@{Protobuf\+C\+Message\+Init}}
\index{Protobuf\+C\+Message\+Init@{Protobuf\+C\+Message\+Init}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Message\+Init}{ProtobufCMessageInit}}
{\footnotesize\ttfamily typedef void($\ast$ Protobuf\+C\+Message\+Init) (\hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$)}



Definition at line 369 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga8af8404a94fe9d4553fd5740f26772ca}\label{group__api_ga8af8404a94fe9d4553fd5740f26772ca}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Message\+Unknown\+Field@{Protobuf\+C\+Message\+Unknown\+Field}}
\index{Protobuf\+C\+Message\+Unknown\+Field@{Protobuf\+C\+Message\+Unknown\+Field}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Message\+Unknown\+Field}{ProtobufCMessageUnknownField}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_message_unknown_field}{Protobuf\+C\+Message\+Unknown\+Field} \hyperlink{struct_protobuf_c_message_unknown_field}{Protobuf\+C\+Message\+Unknown\+Field}}



Definition at line 360 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_gabe1250347a0631ede218fec706a02fa6}\label{group__api_gabe1250347a0631ede218fec706a02fa6}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Method\+Descriptor@{Protobuf\+C\+Method\+Descriptor}}
\index{Protobuf\+C\+Method\+Descriptor@{Protobuf\+C\+Method\+Descriptor}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Method\+Descriptor}{ProtobufCMethodDescriptor}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_method_descriptor}{Protobuf\+C\+Method\+Descriptor} \hyperlink{struct_protobuf_c_method_descriptor}{Protobuf\+C\+Method\+Descriptor}}



Definition at line 361 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_gaf99490e1a44cbe332309ba6cab13ea33}\label{group__api_gaf99490e1a44cbe332309ba6cab13ea33}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Service@{Protobuf\+C\+Service}}
\index{Protobuf\+C\+Service@{Protobuf\+C\+Service}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Service}{ProtobufCService}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} \hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service}}



Definition at line 362 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga1a48d6d82542634b2b02fa83fd371f26}\label{group__api_ga1a48d6d82542634b2b02fa83fd371f26}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Service\+Descriptor@{Protobuf\+C\+Service\+Descriptor}}
\index{Protobuf\+C\+Service\+Descriptor@{Protobuf\+C\+Service\+Descriptor}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Service\+Descriptor}{ProtobufCServiceDescriptor}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct_protobuf_c_service_descriptor}{Protobuf\+C\+Service\+Descriptor} \hyperlink{struct_protobuf_c_service_descriptor}{Protobuf\+C\+Service\+Descriptor}}



Definition at line 363 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_gadd5b502a1486fb7e8250848603144abd}\label{group__api_gadd5b502a1486fb7e8250848603144abd}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Service\+Destroy@{Protobuf\+C\+Service\+Destroy}}
\index{Protobuf\+C\+Service\+Destroy@{Protobuf\+C\+Service\+Destroy}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Service\+Destroy}{ProtobufCServiceDestroy}}
{\footnotesize\ttfamily typedef void($\ast$ Protobuf\+C\+Service\+Destroy) (\hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} $\ast$)}



Definition at line 370 of file protobuf-\/c.\+h.



\subsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__api_gaadb4aa7b15fbb0f75d96838516eee012}\label{group__api_gaadb4aa7b15fbb0f75d96838516eee012}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Field\+Flag@{Protobuf\+C\+Field\+Flag}}
\index{Protobuf\+C\+Field\+Flag@{Protobuf\+C\+Field\+Flag}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Field\+Flag}{ProtobufCFieldFlag}}
{\footnotesize\ttfamily enum \hyperlink{group__api_gaadb4aa7b15fbb0f75d96838516eee012}{Protobuf\+C\+Field\+Flag}}

Values for the {\ttfamily flags} word in {\ttfamily \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor}}. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+P\+A\+C\+K\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+P\+A\+C\+K\+ED}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+P\+A\+C\+K\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+P\+A\+C\+K\+ED}}}\mbox{\Hypertarget{group__api_ggaadb4aa7b15fbb0f75d96838516eee012af024ba3c72b83253823211a7e38ed8e2}\label{group__api_ggaadb4aa7b15fbb0f75d96838516eee012af024ba3c72b83253823211a7e38ed8e2}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+P\+A\+C\+K\+ED&Set if the field is repeated and marked with the {\ttfamily packed} option. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}}}\mbox{\Hypertarget{group__api_ggaadb4aa7b15fbb0f75d96838516eee012a2f78d93c033bb4bee08818e5d10f26e2}\label{group__api_ggaadb4aa7b15fbb0f75d96838516eee012a2f78d93c033bb4bee08818e5d10f26e2}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED&Set if the field is marked with the {\ttfamily deprecated} option. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+O\+N\+E\+OF@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+O\+N\+E\+OF}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+O\+N\+E\+OF@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+O\+N\+E\+OF}}}\mbox{\Hypertarget{group__api_ggaadb4aa7b15fbb0f75d96838516eee012af4e5885518bbc5d4b3274697ff9e1690}\label{group__api_ggaadb4aa7b15fbb0f75d96838516eee012af4e5885518bbc5d4b3274697ff9e1690}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+F\+I\+E\+L\+D\+\_\+\+F\+L\+A\+G\+\_\+\+O\+N\+E\+OF&Set if the field is a member of a oneof (union). \\
\hline

\end{DoxyEnumFields}


Definition at line 252 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5}\label{group__api_ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Label@{Protobuf\+C\+Label}}
\index{Protobuf\+C\+Label@{Protobuf\+C\+Label}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Label}{ProtobufCLabel}}
{\footnotesize\ttfamily enum \hyperlink{group__api_ga5ec2e3fd5bbe4c5f6a64b06b7425d0e5}{Protobuf\+C\+Label}}

Message field rules.

\begin{DoxySeeAlso}{See also}
\href{https://developers.google.com/protocol-buffers/docs/proto#simple}{\tt Defining A Message Type} in the Protocol Buffers documentation. 
\end{DoxySeeAlso}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+Q\+U\+I\+R\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+Q\+U\+I\+R\+ED}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+Q\+U\+I\+R\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+Q\+U\+I\+R\+ED}}}\mbox{\Hypertarget{group__api_gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5a407dd9d769a377e156a6c945647bccbb}\label{group__api_gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5a407dd9d769a377e156a6c945647bccbb}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+Q\+U\+I\+R\+ED&A well-\/formed message must have exactly one of this field. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+O\+P\+T\+I\+O\+N\+AL@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+O\+P\+T\+I\+O\+N\+AL}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+O\+P\+T\+I\+O\+N\+AL@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+O\+P\+T\+I\+O\+N\+AL}}}\mbox{\Hypertarget{group__api_gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5abc861df7f96354b08c62397e5a1c1526}\label{group__api_gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5abc861df7f96354b08c62397e5a1c1526}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+O\+P\+T\+I\+O\+N\+AL&A well-\/formed message can have zero or one of this field (but not more than one). \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+P\+E\+A\+T\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+P\+E\+A\+T\+ED}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+P\+E\+A\+T\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+P\+E\+A\+T\+ED}}}\mbox{\Hypertarget{group__api_gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5a2603fa5b6f8effddfedf61cd0b423d86}\label{group__api_gga5ec2e3fd5bbe4c5f6a64b06b7425d0e5a2603fa5b6f8effddfedf61cd0b423d86}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+P\+E\+A\+T\+ED&This field can be repeated any number of times (including zero) in a well-\/formed message. The order of the repeated values will be preserved. \\
\hline

\end{DoxyEnumFields}


Definition at line 271 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga784625188e935a74bc4577297b8c6802}\label{group__api_ga784625188e935a74bc4577297b8c6802}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Type@{Protobuf\+C\+Type}}
\index{Protobuf\+C\+Type@{Protobuf\+C\+Type}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Type}{ProtobufCType}}
{\footnotesize\ttfamily enum \hyperlink{group__api_ga784625188e935a74bc4577297b8c6802}{Protobuf\+C\+Type}}

Field value types.

\begin{DoxySeeAlso}{See also}
\href{https://developers.google.com/protocol-buffers/docs/proto#scalar}{\tt Scalar Value Types} in the Protocol Buffers documentation. 
\end{DoxySeeAlso}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T32}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T32}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a54afdba64cff6fabf91b40fe31dec281}\label{group__api_gga784625188e935a74bc4577297b8c6802a54afdba64cff6fabf91b40fe31dec281}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T32&int32 \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T32}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T32}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a274ea5920a7c3a4c60ad44cb5b83ffe7}\label{group__api_gga784625188e935a74bc4577297b8c6802a274ea5920a7c3a4c60ad44cb5b83ffe7}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T32&signed int32 \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D32}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D32}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a85d90c50c21853765d70d46529daaa9d}\label{group__api_gga784625188e935a74bc4577297b8c6802a85d90c50c21853765d70d46529daaa9d}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D32&signed int32 (4 bytes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a888a0648e4a7a60de4c85c9478a28943}\label{group__api_gga784625188e935a74bc4577297b8c6802a888a0648e4a7a60de4c85c9478a28943}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+T64&int64 \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T64}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T64}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802adf45606aca4d584a2dcd7f6c6e65813e}\label{group__api_gga784625188e935a74bc4577297b8c6802adf45606aca4d584a2dcd7f6c6e65813e}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+I\+N\+T64&signed int64 \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D64}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D64}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a331f878e354cff599669429dbf9c4ce8}\label{group__api_gga784625188e935a74bc4577297b8c6802a331f878e354cff599669429dbf9c4ce8}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+F\+I\+X\+E\+D64&signed int64 (8 bytes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T32}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T32}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802ae09ad26f344a01b2553f018a2a1c6395}\label{group__api_gga784625188e935a74bc4577297b8c6802ae09ad26f344a01b2553f018a2a1c6395}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T32&unsigned int32 \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D32}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D32@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D32}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802aac3030ee5e8dd5344379ee300a82202e}\label{group__api_gga784625188e935a74bc4577297b8c6802aac3030ee5e8dd5344379ee300a82202e}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D32&unsigned int32 (4 bytes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a7328d807873e30732d7b30d61f545943}\label{group__api_gga784625188e935a74bc4577297b8c6802a7328d807873e30732d7b30d61f545943}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+U\+I\+N\+T64&unsigned int64 \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D64}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D64@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D64}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a320288786ed4bd2c54c9e36b4c654b45}\label{group__api_gga784625188e935a74bc4577297b8c6802a320288786ed4bd2c54c9e36b4c654b45}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+I\+X\+E\+D64&unsigned int64 (8 bytes) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a952cd3b1559601eda9e13bc031ce8124}\label{group__api_gga784625188e935a74bc4577297b8c6802a952cd3b1559601eda9e13bc031ce8124}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+F\+L\+O\+AT&float \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802ac9bd87c605d9b91c8ecbda3b8d0a21d0}\label{group__api_gga784625188e935a74bc4577297b8c6802ac9bd87c605d9b91c8ecbda3b8d0a21d0}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+D\+O\+U\+B\+LE&double \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+O\+OL@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+O\+OL}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+O\+OL@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+O\+OL}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802adabbab95a284dd090d4ad06d5efe15a4}\label{group__api_gga784625188e935a74bc4577297b8c6802adabbab95a284dd090d4ad06d5efe15a4}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+O\+OL&boolean \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+N\+UM@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+N\+UM}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+N\+UM@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+N\+UM}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a90b88be968f415cbc571fe9f594eefc3}\label{group__api_gga784625188e935a74bc4577297b8c6802a90b88be968f415cbc571fe9f594eefc3}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+N\+UM&enumerated type \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a6b4c1ad9006305661fbc64cb510718a3}\label{group__api_gga784625188e935a74bc4577297b8c6802a6b4c1ad9006305661fbc64cb510718a3}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+T\+R\+I\+NG&U\+T\+F-\/8 or A\+S\+C\+II string \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+Y\+T\+ES@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+Y\+T\+ES}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+Y\+T\+ES@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+Y\+T\+ES}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a3fcef85f6edbc4b69b4dc3590ad172e8}\label{group__api_gga784625188e935a74bc4577297b8c6802a3fcef85f6edbc4b69b4dc3590ad172e8}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+B\+Y\+T\+ES&arbitrary byte sequence \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+E\+S\+S\+A\+GE@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+E\+S\+S\+A\+GE}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+E\+S\+S\+A\+GE@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+E\+S\+S\+A\+GE}}}\mbox{\Hypertarget{group__api_gga784625188e935a74bc4577297b8c6802a7f7176385f20b3c44770b99dbde34302}\label{group__api_gga784625188e935a74bc4577297b8c6802a7f7176385f20b3c44770b99dbde34302}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+E\+S\+S\+A\+GE&nested message \\
\hline

\end{DoxyEnumFields}


Definition at line 297 of file protobuf-\/c.\+h.

\mbox{\Hypertarget{group__api_ga58f35889606ee435ad29a83bcea23ca6}\label{group__api_ga58f35889606ee435ad29a83bcea23ca6}} 
\index{Public A\+PI@{Public A\+PI}!Protobuf\+C\+Wire\+Type@{Protobuf\+C\+Wire\+Type}}
\index{Protobuf\+C\+Wire\+Type@{Protobuf\+C\+Wire\+Type}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{Protobuf\+C\+Wire\+Type}{ProtobufCWireType}}
{\footnotesize\ttfamily enum \hyperlink{group__api_ga58f35889606ee435ad29a83bcea23ca6}{Protobuf\+C\+Wire\+Type}}

Field wire types.

\begin{DoxySeeAlso}{See also}
\href{https://developers.google.com/protocol-buffers/docs/encoding#structure}{\tt Message Structure} in the Protocol Buffers documentation. 
\end{DoxySeeAlso}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+V\+A\+R\+I\+NT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+V\+A\+R\+I\+NT}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+V\+A\+R\+I\+NT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+V\+A\+R\+I\+NT}}}\mbox{\Hypertarget{group__api_gga58f35889606ee435ad29a83bcea23ca6ad9cff26eff936f5ba95c039a63b9d1b3}\label{group__api_gga58f35889606ee435ad29a83bcea23ca6ad9cff26eff936f5ba95c039a63b9d1b3}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+V\+A\+R\+I\+NT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+64\+B\+IT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+64\+B\+IT}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+64\+B\+IT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+64\+B\+IT}}}\mbox{\Hypertarget{group__api_gga58f35889606ee435ad29a83bcea23ca6acddea9eb6cfa51d2515770b358b24f8f}\label{group__api_gga58f35889606ee435ad29a83bcea23ca6acddea9eb6cfa51d2515770b358b24f8f}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+64\+B\+IT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+E\+N\+G\+T\+H\+\_\+\+P\+R\+E\+F\+I\+X\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+E\+N\+G\+T\+H\+\_\+\+P\+R\+E\+F\+I\+X\+ED}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+E\+N\+G\+T\+H\+\_\+\+P\+R\+E\+F\+I\+X\+ED@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+E\+N\+G\+T\+H\+\_\+\+P\+R\+E\+F\+I\+X\+ED}}}\mbox{\Hypertarget{group__api_gga58f35889606ee435ad29a83bcea23ca6abee5e7e065cb28f5d9ef94ad62863edc}\label{group__api_gga58f35889606ee435ad29a83bcea23ca6abee5e7e065cb28f5d9ef94ad62863edc}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+L\+E\+N\+G\+T\+H\+\_\+\+P\+R\+E\+F\+I\+X\+ED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+32\+B\+IT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+32\+B\+IT}!Public A\+PI@{Public A\+PI}}\index{Public A\+PI@{Public A\+PI}!P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+32\+B\+IT@{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+32\+B\+IT}}}\mbox{\Hypertarget{group__api_gga58f35889606ee435ad29a83bcea23ca6a005bd9cbc420ac8413f7c624eb2d5cee}\label{group__api_gga58f35889606ee435ad29a83bcea23ca6a005bd9cbc420ac8413f7c624eb2d5cee}} 
P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+W\+I\+R\+E\+\_\+\+T\+Y\+P\+E\+\_\+32\+B\+IT&\\
\hline

\end{DoxyEnumFields}


Definition at line 325 of file protobuf-\/c.\+h.



\subsection{Function Documentation}
\mbox{\Hypertarget{group__api_ga111978e3c2c5f485b730a60ccb9921d1}\label{group__api_ga111978e3c2c5f485b730a60ccb9921d1}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+buffer\+\_\+simple\+\_\+append@{protobuf\+\_\+c\+\_\+buffer\+\_\+simple\+\_\+append}}
\index{protobuf\+\_\+c\+\_\+buffer\+\_\+simple\+\_\+append@{protobuf\+\_\+c\+\_\+buffer\+\_\+simple\+\_\+append}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+buffer\+\_\+simple\+\_\+append()}{protobuf\_c\_buffer\_simple\_append()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void protobuf\+\_\+c\+\_\+buffer\+\_\+simple\+\_\+append (\begin{DoxyParamCaption}\item[{\hyperlink{struct_protobuf_c_buffer}{Protobuf\+C\+Buffer} $\ast$}]{buffer,  }\item[{size\+\_\+t}]{len,  }\item[{const unsigned char $\ast$}]{data }\end{DoxyParamCaption})}

The {\ttfamily append} method for {\ttfamily \hyperlink{struct_protobuf_c_buffer_simple}{Protobuf\+C\+Buffer\+Simple}}.


\begin{DoxyParams}{Parameters}
{\em buffer} & The buffer object to append to. Must actually be a {\ttfamily \hyperlink{struct_protobuf_c_buffer_simple}{Protobuf\+C\+Buffer\+Simple}} object. \\
\hline
{\em len} & Number of bytes in {\ttfamily data}. \\
\hline
{\em data} & Data to append. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__api_ga3494dba32b2575e92a309781c2da705d}\label{group__api_ga3494dba32b2575e92a309781c2da705d}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value@{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value}}
\index{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value@{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value()}{protobuf\_c\_enum\_descriptor\_get\_value()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}$\ast$ protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor} $\ast$}]{desc,  }\item[{int}]{value }\end{DoxyParamCaption})}

Look up a {\ttfamily \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}} from a {\ttfamily \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor}} by numeric value.


\begin{DoxyParams}{Parameters}
{\em desc} & The {\ttfamily \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor}} object. \\
\hline
{\em value} & The {\ttfamily value} field from the corresponding {\ttfamily \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}} object to match.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A {\ttfamily \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}} object. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
{\em N\+U\+LL} & If not found. \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__api_ga88973caa211372b4aa10f2ece48b3731}\label{group__api_ga88973caa211372b4aa10f2ece48b3731}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value\+\_\+by\+\_\+name@{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value\+\_\+by\+\_\+name}}
\index{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value\+\_\+by\+\_\+name@{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value\+\_\+by\+\_\+name}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value\+\_\+by\+\_\+name()}{protobuf\_c\_enum\_descriptor\_get\_value\_by\_name()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}$\ast$ protobuf\+\_\+c\+\_\+enum\+\_\+descriptor\+\_\+get\+\_\+value\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor} $\ast$}]{desc,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}

Look up a {\ttfamily \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}} from a {\ttfamily \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor}} by name.


\begin{DoxyParams}{Parameters}
{\em desc} & The {\ttfamily \hyperlink{struct_protobuf_c_enum_descriptor}{Protobuf\+C\+Enum\+Descriptor}} object. \\
\hline
{\em name} & The {\ttfamily name} field from the corresponding {\ttfamily \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}} object to match. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A {\ttfamily \hyperlink{struct_protobuf_c_enum_value}{Protobuf\+C\+Enum\+Value}} object. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
{\em N\+U\+LL} & If not found. \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__api_ga43e69373b62b8fcf75fe7dc4815014bf}\label{group__api_ga43e69373b62b8fcf75fe7dc4815014bf}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+message\+\_\+check@{protobuf\+\_\+c\+\_\+message\+\_\+check}}
\index{protobuf\+\_\+c\+\_\+message\+\_\+check@{protobuf\+\_\+c\+\_\+message\+\_\+check}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+message\+\_\+check()}{protobuf\_c\_message\_check()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} \hyperlink{group__api_ga98475218bcbd7a2171589414021c2633}{protobuf\+\_\+c\+\_\+boolean} protobuf\+\_\+c\+\_\+message\+\_\+check (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$}]{ }\end{DoxyParamCaption})}

Check the validity of a message object.

Makes sure all required fields ({\ttfamily P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+L\+A\+B\+E\+L\+\_\+\+R\+E\+Q\+U\+I\+R\+ED}) are present. Recursively checks nested messages.


\begin{DoxyRetVals}{Return values}
{\em T\+R\+UE} & Message is valid. \\
\hline
{\em F\+A\+L\+SE} & Message is invalid. \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__api_ga5fbd141ad4ba5f2da59b0bb0a7f806a8}\label{group__api_ga5fbd141ad4ba5f2da59b0bb0a7f806a8}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field@{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field}}
\index{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field@{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field()}{protobuf\_c\_message\_descriptor\_get\_field()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor}$\ast$ protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} $\ast$}]{desc,  }\item[{unsigned}]{value }\end{DoxyParamCaption})}

Look up a {\ttfamily \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor}} from a {\ttfamily \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor}} by the tag value of the field.


\begin{DoxyParams}{Parameters}
{\em desc} & The {\ttfamily \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor}} object. \\
\hline
{\em value} & The tag value of the field. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A {\ttfamily \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor}} object. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
{\em N\+U\+LL} & If not found. \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__api_gabff20d8b224f8dbff9046831a510e531}\label{group__api_gabff20d8b224f8dbff9046831a510e531}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field\+\_\+by\+\_\+name@{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field\+\_\+by\+\_\+name}}
\index{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field\+\_\+by\+\_\+name@{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field\+\_\+by\+\_\+name}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field\+\_\+by\+\_\+name()}{protobuf\_c\_message\_descriptor\_get\_field\_by\_name()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor}$\ast$ protobuf\+\_\+c\+\_\+message\+\_\+descriptor\+\_\+get\+\_\+field\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} $\ast$}]{desc,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}

Look up a {\ttfamily \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor}} from a {\ttfamily \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor}} by the name of the field.


\begin{DoxyParams}{Parameters}
{\em desc} & The {\ttfamily \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor}} object. \\
\hline
{\em name} & The name of the field. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A {\ttfamily \hyperlink{struct_protobuf_c_field_descriptor}{Protobuf\+C\+Field\+Descriptor}} object. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
{\em N\+U\+LL} & If not found. \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__api_ga67d71b3349faa97e879e888e88c8029e}\label{group__api_ga67d71b3349faa97e879e888e88c8029e}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+message\+\_\+free\+\_\+unpacked@{protobuf\+\_\+c\+\_\+message\+\_\+free\+\_\+unpacked}}
\index{protobuf\+\_\+c\+\_\+message\+\_\+free\+\_\+unpacked@{protobuf\+\_\+c\+\_\+message\+\_\+free\+\_\+unpacked}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+message\+\_\+free\+\_\+unpacked()}{protobuf\_c\_message\_free\_unpacked()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void protobuf\+\_\+c\+\_\+message\+\_\+free\+\_\+unpacked (\begin{DoxyParamCaption}\item[{\hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$}]{message,  }\item[{\hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator} $\ast$}]{allocator }\end{DoxyParamCaption})}

Free an unpacked message object.

This function should be used to deallocate the memory used by a call to \hyperlink{group__api_ga1e88dc4ae2aa7d5bdb593662ba212f22}{protobuf\+\_\+c\+\_\+message\+\_\+unpack()}.


\begin{DoxyParams}{Parameters}
{\em message} & The message object to free. \\
\hline
{\em allocator} & {\ttfamily \hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator}} to use for memory deallocation. May be N\+U\+LL to specify the default allocator. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__api_gafae6d8624073687eae8a9c597a1fcbcc}\label{group__api_gafae6d8624073687eae8a9c597a1fcbcc}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+message\+\_\+get\+\_\+packed\+\_\+size@{protobuf\+\_\+c\+\_\+message\+\_\+get\+\_\+packed\+\_\+size}}
\index{protobuf\+\_\+c\+\_\+message\+\_\+get\+\_\+packed\+\_\+size@{protobuf\+\_\+c\+\_\+message\+\_\+get\+\_\+packed\+\_\+size}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+message\+\_\+get\+\_\+packed\+\_\+size()}{protobuf\_c\_message\_get\_packed\_size()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} size\+\_\+t protobuf\+\_\+c\+\_\+message\+\_\+get\+\_\+packed\+\_\+size (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$}]{message }\end{DoxyParamCaption})}

Determine the number of bytes required to store the serialised message.


\begin{DoxyParams}{Parameters}
{\em message} & The message object to serialise. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Number of bytes. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__api_gac95ea94b837c65898350fe2e1c834b53}\label{group__api_gac95ea94b837c65898350fe2e1c834b53}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+message\+\_\+init@{protobuf\+\_\+c\+\_\+message\+\_\+init}}
\index{protobuf\+\_\+c\+\_\+message\+\_\+init@{protobuf\+\_\+c\+\_\+message\+\_\+init}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+message\+\_\+init()}{protobuf\_c\_message\_init()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void protobuf\+\_\+c\+\_\+message\+\_\+init (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} $\ast$}]{descriptor,  }\item[{void $\ast$}]{message }\end{DoxyParamCaption})}

Initialise a message object from a message descriptor.


\begin{DoxyParams}{Parameters}
{\em descriptor} & Message descriptor. \\
\hline
{\em message} & Allocated block of memory of size {\ttfamily descriptor-\/$>$sizeof\+\_\+message}. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__api_ga087e379c203051e66732010c1828965e}\label{group__api_ga087e379c203051e66732010c1828965e}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+message\+\_\+pack@{protobuf\+\_\+c\+\_\+message\+\_\+pack}}
\index{protobuf\+\_\+c\+\_\+message\+\_\+pack@{protobuf\+\_\+c\+\_\+message\+\_\+pack}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+message\+\_\+pack()}{protobuf\_c\_message\_pack()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} size\+\_\+t protobuf\+\_\+c\+\_\+message\+\_\+pack (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$}]{message,  }\item[{\hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{out }\end{DoxyParamCaption})}

Serialise a message from its in-\/memory representation.

This function stores the serialised bytes of the message in a pre-\/allocated buffer.


\begin{DoxyParams}[1]{Parameters}
 & {\em message} & The message object to serialise. \\
\hline
\mbox{\tt out}  & {\em out} & Buffer to store the bytes of the serialised message. This buffer must have enough space to store the packed message. Use \hyperlink{group__api_gafae6d8624073687eae8a9c597a1fcbcc}{protobuf\+\_\+c\+\_\+message\+\_\+get\+\_\+packed\+\_\+size()} to determine the number of bytes required. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Number of bytes stored in {\ttfamily out}. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__api_gaa1cde08f1ad1408209ed427f9e0647bc}\label{group__api_gaa1cde08f1ad1408209ed427f9e0647bc}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+message\+\_\+pack\+\_\+to\+\_\+buffer@{protobuf\+\_\+c\+\_\+message\+\_\+pack\+\_\+to\+\_\+buffer}}
\index{protobuf\+\_\+c\+\_\+message\+\_\+pack\+\_\+to\+\_\+buffer@{protobuf\+\_\+c\+\_\+message\+\_\+pack\+\_\+to\+\_\+buffer}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+message\+\_\+pack\+\_\+to\+\_\+buffer()}{protobuf\_c\_message\_pack\_to\_buffer()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} size\+\_\+t protobuf\+\_\+c\+\_\+message\+\_\+pack\+\_\+to\+\_\+buffer (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$}]{message,  }\item[{\hyperlink{struct_protobuf_c_buffer}{Protobuf\+C\+Buffer} $\ast$}]{buffer }\end{DoxyParamCaption})}

Serialise a message from its in-\/memory representation to a virtual buffer.

This function calls the {\ttfamily append} method of a {\ttfamily \hyperlink{struct_protobuf_c_buffer}{Protobuf\+C\+Buffer}} object to consume the bytes generated by the serialiser.


\begin{DoxyParams}{Parameters}
{\em message} & The message object to serialise. \\
\hline
{\em buffer} & The virtual buffer object. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Number of bytes passed to the virtual buffer. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__api_ga1e88dc4ae2aa7d5bdb593662ba212f22}\label{group__api_ga1e88dc4ae2aa7d5bdb593662ba212f22}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+message\+\_\+unpack@{protobuf\+\_\+c\+\_\+message\+\_\+unpack}}
\index{protobuf\+\_\+c\+\_\+message\+\_\+unpack@{protobuf\+\_\+c\+\_\+message\+\_\+unpack}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+message\+\_\+unpack()}{protobuf\_c\_message\_unpack()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message}$\ast$ protobuf\+\_\+c\+\_\+message\+\_\+unpack (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_message_descriptor}{Protobuf\+C\+Message\+Descriptor} $\ast$}]{descriptor,  }\item[{\hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator} $\ast$}]{allocator,  }\item[{size\+\_\+t}]{len,  }\item[{const \hyperlink{uthash_8h_aba7bc1797add20fe3efdf37ced1182c5}{uint8\+\_\+t} $\ast$}]{data }\end{DoxyParamCaption})}

Unpack a serialised message into an in-\/memory representation.


\begin{DoxyParams}{Parameters}
{\em descriptor} & The message descriptor. \\
\hline
{\em allocator} & {\ttfamily \hyperlink{struct_protobuf_c_allocator}{Protobuf\+C\+Allocator}} to use for memory allocation. May be N\+U\+LL to specify the default allocator. \\
\hline
{\em len} & Length in bytes of the serialised message. \\
\hline
{\em data} & Pointer to the serialised message. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An unpacked message object. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
{\em N\+U\+LL} & If an error occurred during unpacking. \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__api_ga811da2d10f3810b4b91fd64684a4b14f}\label{group__api_ga811da2d10f3810b4b91fd64684a4b14f}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+service\+\_\+descriptor\+\_\+get\+\_\+method\+\_\+by\+\_\+name@{protobuf\+\_\+c\+\_\+service\+\_\+descriptor\+\_\+get\+\_\+method\+\_\+by\+\_\+name}}
\index{protobuf\+\_\+c\+\_\+service\+\_\+descriptor\+\_\+get\+\_\+method\+\_\+by\+\_\+name@{protobuf\+\_\+c\+\_\+service\+\_\+descriptor\+\_\+get\+\_\+method\+\_\+by\+\_\+name}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+service\+\_\+descriptor\+\_\+get\+\_\+method\+\_\+by\+\_\+name()}{protobuf\_c\_service\_descriptor\_get\_method\_by\_name()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const \hyperlink{struct_protobuf_c_method_descriptor}{Protobuf\+C\+Method\+Descriptor}$\ast$ protobuf\+\_\+c\+\_\+service\+\_\+descriptor\+\_\+get\+\_\+method\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_protobuf_c_service_descriptor}{Protobuf\+C\+Service\+Descriptor} $\ast$}]{desc,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}

Look up a {\ttfamily \hyperlink{struct_protobuf_c_method_descriptor}{Protobuf\+C\+Method\+Descriptor}} by name.


\begin{DoxyParams}{Parameters}
{\em desc} & Service descriptor. \\
\hline
{\em name} & Name of the method.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A {\ttfamily \hyperlink{struct_protobuf_c_method_descriptor}{Protobuf\+C\+Method\+Descriptor}} object. 
\end{DoxyReturn}

\begin{DoxyRetVals}{Return values}
{\em N\+U\+LL} & If not found. \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__api_ga4056e05b3db2dbfeeea3bec6af267c0b}\label{group__api_ga4056e05b3db2dbfeeea3bec6af267c0b}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+service\+\_\+destroy@{protobuf\+\_\+c\+\_\+service\+\_\+destroy}}
\index{protobuf\+\_\+c\+\_\+service\+\_\+destroy@{protobuf\+\_\+c\+\_\+service\+\_\+destroy}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+service\+\_\+destroy()}{protobuf\_c\_service\_destroy()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void protobuf\+\_\+c\+\_\+service\+\_\+destroy (\begin{DoxyParamCaption}\item[{\hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} $\ast$}]{service }\end{DoxyParamCaption})}

Free a service.


\begin{DoxyParams}{Parameters}
{\em service} & The service object to free. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__api_ga9698f046870360eaa186cda653949763}\label{group__api_ga9698f046870360eaa186cda653949763}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+service\+\_\+generated\+\_\+init@{protobuf\+\_\+c\+\_\+service\+\_\+generated\+\_\+init}}
\index{protobuf\+\_\+c\+\_\+service\+\_\+generated\+\_\+init@{protobuf\+\_\+c\+\_\+service\+\_\+generated\+\_\+init}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+service\+\_\+generated\+\_\+init()}{protobuf\_c\_service\_generated\_init()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void protobuf\+\_\+c\+\_\+service\+\_\+generated\+\_\+init (\begin{DoxyParamCaption}\item[{\hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} $\ast$}]{service,  }\item[{const \hyperlink{struct_protobuf_c_service_descriptor}{Protobuf\+C\+Service\+Descriptor} $\ast$}]{descriptor,  }\item[{\hyperlink{group__api_gadd5b502a1486fb7e8250848603144abd}{Protobuf\+C\+Service\+Destroy}}]{destroy }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group__api_ga73fdddd18145c2bbf1b3dc88987eb765}\label{group__api_ga73fdddd18145c2bbf1b3dc88987eb765}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+service\+\_\+invoke\+\_\+internal@{protobuf\+\_\+c\+\_\+service\+\_\+invoke\+\_\+internal}}
\index{protobuf\+\_\+c\+\_\+service\+\_\+invoke\+\_\+internal@{protobuf\+\_\+c\+\_\+service\+\_\+invoke\+\_\+internal}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+service\+\_\+invoke\+\_\+internal()}{protobuf\_c\_service\_invoke\_internal()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} void protobuf\+\_\+c\+\_\+service\+\_\+invoke\+\_\+internal (\begin{DoxyParamCaption}\item[{\hyperlink{struct_protobuf_c_service}{Protobuf\+C\+Service} $\ast$}]{service,  }\item[{unsigned}]{method\+\_\+index,  }\item[{const \hyperlink{struct_protobuf_c_message}{Protobuf\+C\+Message} $\ast$}]{input,  }\item[{\hyperlink{group__api_ga7274779a94ac8cff4272a03eb593faeb}{Protobuf\+C\+Closure}}]{closure,  }\item[{void $\ast$}]{closure\+\_\+data }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group__api_gac6883ba449f721c0554fc092379e6c3d}\label{group__api_gac6883ba449f721c0554fc092379e6c3d}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+version@{protobuf\+\_\+c\+\_\+version}}
\index{protobuf\+\_\+c\+\_\+version@{protobuf\+\_\+c\+\_\+version}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+version()}{protobuf\_c\_version()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} const char$\ast$ protobuf\+\_\+c\+\_\+version (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Get the version of the protobuf-\/c library. Note that this is the version of the library linked against, not the version of the headers compiled against.

\begin{DoxyReturn}{Returns}
A string containing the version number of protobuf-\/c. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__api_ga67715991d67ccd3643e9a300e8943aac}\label{group__api_ga67715991d67ccd3643e9a300e8943aac}} 
\index{Public A\+PI@{Public A\+PI}!protobuf\+\_\+c\+\_\+version\+\_\+number@{protobuf\+\_\+c\+\_\+version\+\_\+number}}
\index{protobuf\+\_\+c\+\_\+version\+\_\+number@{protobuf\+\_\+c\+\_\+version\+\_\+number}!Public A\+PI@{Public A\+PI}}
\subsubsection{\texorpdfstring{protobuf\+\_\+c\+\_\+version\+\_\+number()}{protobuf\_c\_version\_number()}}
{\footnotesize\ttfamily \hyperlink{protobuf-c_8h_a26c1cedac0769b38c5e9610aaeb0315e}{P\+R\+O\+T\+O\+B\+U\+F\+\_\+\+C\+\_\+\+\_\+\+A\+PI} \hyperlink{uthash_8h_a435d1572bf3f880d55459d9805097f62}{uint32\+\_\+t} protobuf\+\_\+c\+\_\+version\+\_\+number (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Get the version of the protobuf-\/c library. Note that this is the version of the library linked against, not the version of the headers compiled against.

\begin{DoxyReturn}{Returns}
A 32 bit unsigned integer containing the version number of protobuf-\/c, represented in base-\/10 as (M\+A\+J\+O\+R$\ast$1\+E6) + (M\+I\+N\+O\+R$\ast$1\+E3) + P\+A\+T\+CH. 
\end{DoxyReturn}
