108
pb.h
108
pb.h
@@ -6,7 +6,7 @@
|
||||
* see pb_encode.h or pb_decode.h
|
||||
*/
|
||||
|
||||
#define NANOPB_VERSION 0.2.0-dev
|
||||
#define NANOPB_VERSION nanopb-0.2.0-dev
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
@@ -53,59 +53,59 @@
|
||||
* SINT* is different, though, because it is zig-zag coded.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
/************************
|
||||
* Field contents types *
|
||||
************************/
|
||||
|
||||
/* Numeric types */
|
||||
PB_LTYPE_VARINT = 0x00, /* int32, uint32, int64, uint64, bool, enum */
|
||||
PB_LTYPE_SVARINT = 0x01, /* sint32, sint64 */
|
||||
PB_LTYPE_FIXED32 = 0x02, /* fixed32, sfixed32, float */
|
||||
PB_LTYPE_FIXED64 = 0x03, /* fixed64, sfixed64, double */
|
||||
|
||||
/* Marker for last packable field type. */
|
||||
PB_LTYPE_LAST_PACKABLE = 0x03,
|
||||
|
||||
/* Byte array with pre-allocated buffer.
|
||||
* data_size is the length of the allocated PB_BYTES_ARRAY structure. */
|
||||
PB_LTYPE_BYTES = 0x04,
|
||||
|
||||
/* String with pre-allocated buffer.
|
||||
* data_size is the maximum length. */
|
||||
PB_LTYPE_STRING = 0x05,
|
||||
|
||||
/* Submessage
|
||||
* submsg_fields is pointer to field descriptions */
|
||||
PB_LTYPE_SUBMESSAGE = 0x06,
|
||||
|
||||
/* Number of declared LTYPES */
|
||||
PB_LTYPES_COUNT = 7,
|
||||
PB_LTYPE_MASK = 0x0F,
|
||||
|
||||
/******************
|
||||
* Modifier flags *
|
||||
******************/
|
||||
|
||||
/* Just the basic, write data at data_offset */
|
||||
PB_HTYPE_REQUIRED = 0x00,
|
||||
|
||||
/* Write true at size_offset */
|
||||
PB_HTYPE_OPTIONAL = 0x10,
|
||||
|
||||
/* Read to pre-allocated array
|
||||
* Maximum number of entries is array_size,
|
||||
* actual number is stored at size_offset */
|
||||
PB_HTYPE_ARRAY = 0x20,
|
||||
|
||||
/* Works for all required/optional/repeated fields.
|
||||
* data_offset points to pb_callback_t structure.
|
||||
* LTYPE should be valid or 0 (it is ignored, but
|
||||
* sometimes used to speculatively index an array). */
|
||||
PB_HTYPE_CALLBACK = 0x30,
|
||||
|
||||
PB_HTYPE_MASK = 0xF0
|
||||
} pb_packed pb_type_t;
|
||||
typedef uint8_t pb_type_t;
|
||||
|
||||
/************************
|
||||
* Field contents types *
|
||||
************************/
|
||||
|
||||
/* Numeric types */
|
||||
#define PB_LTYPE_VARINT 0x00 /* int32, uint32, int64, uint64, bool, enum */
|
||||
#define PB_LTYPE_SVARINT 0x01 /* sint32, sint64 */
|
||||
#define PB_LTYPE_FIXED32 0x02 /* fixed32, sfixed32, float */
|
||||
#define PB_LTYPE_FIXED64 0x03 /* fixed64, sfixed64, double */
|
||||
|
||||
/* Marker for last packable field type. */
|
||||
#define PB_LTYPE_LAST_PACKABLE 0x03
|
||||
|
||||
/* Byte array with pre-allocated buffer.
|
||||
* data_size is the length of the allocated PB_BYTES_ARRAY structure. */
|
||||
#define PB_LTYPE_BYTES 0x04
|
||||
|
||||
/* String with pre-allocated buffer.
|
||||
* data_size is the maximum length. */
|
||||
#define PB_LTYPE_STRING 0x05
|
||||
|
||||
/* Submessage
|
||||
* submsg_fields is pointer to field descriptions */
|
||||
#define PB_LTYPE_SUBMESSAGE 0x06
|
||||
|
||||
/* Number of declared LTYPES */
|
||||
#define PB_LTYPES_COUNT 7
|
||||
#define PB_LTYPE_MASK 0x0F
|
||||
|
||||
/******************
|
||||
* Modifier flags *
|
||||
******************/
|
||||
|
||||
/* Just the basic, write data at data_offset */
|
||||
#define PB_HTYPE_REQUIRED 0x00
|
||||
|
||||
/* Write true at size_offset */
|
||||
#define PB_HTYPE_OPTIONAL 0x10
|
||||
|
||||
/* Read to pre-allocated array
|
||||
* Maximum number of entries is array_size,
|
||||
* actual number is stored at size_offset */
|
||||
#define PB_HTYPE_ARRAY 0x20
|
||||
|
||||
/* Works for all required/optional/repeated fields.
|
||||
* data_offset points to pb_callback_t structure.
|
||||
* LTYPE should be valid or 0 (it is ignored, but
|
||||
* sometimes used to speculatively index an array). */
|
||||
#define PB_HTYPE_CALLBACK 0x30
|
||||
|
||||
#define PB_HTYPE_MASK 0xF0
|
||||
|
||||
#define PB_HTYPE(x) ((x) & PB_HTYPE_MASK)
|
||||
#define PB_LTYPE(x) ((x) & PB_LTYPE_MASK)
|
||||
|
||||
Reference in New Issue
Block a user