More documentation, small improvements

git-svn-id: https://svn.kapsi.fi/jpa/nanopb@955 e3a754e5-d11d-0410-8d38-ebb782a927b9
This commit is contained in:
Petteri Aimonen
2011-08-14 20:11:05 +00:00
parent 6dfba365b0
commit 842d52633d
13 changed files with 562 additions and 104 deletions

24
pb.h
View File

@@ -1,6 +1,11 @@
#ifndef _PB_H_
#define _PB_H_
/* pb.h: Common parts for nanopb library.
* Most of these are quite low-level stuff. For the high-level interface,
* see pb_encode.h or pb_decode.h
*/
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
@@ -12,15 +17,7 @@
#define pb_packed
#endif
/* Wire types. Library user needs these only in encoder callbacks. */
typedef enum {
PB_WT_VARINT = 0,
PB_WT_64BIT = 1,
PB_WT_STRING = 2,
PB_WT_32BIT = 5
} pb_wire_type_t;
/* List of possible field types
/* List of possible field types. These are used in the autogenerated code.
* Least-significant 4 bits tell the scalar type
* Most-significant 4 bits specify repeated/required/packed etc.
*
@@ -143,10 +140,19 @@ struct _pb_callback_t {
void *arg;
};
/* Wire types. Library user needs these only in encoder callbacks. */
typedef enum {
PB_WT_VARINT = 0,
PB_WT_64BIT = 1,
PB_WT_STRING = 2,
PB_WT_32BIT = 5
} pb_wire_type_t;
/* These macros are used to declare pb_field_t's in the constant array. */
#define pb_membersize(st, m) (sizeof ((st*)0)->m)
#define pb_arraysize(st, m) (pb_membersize(st, m) / pb_membersize(st, m[0]))
#define pb_delta(st, m1, m2) ((int)offsetof(st, m1) - (int)offsetof(st, m2))
#define pb_delta_end(st, m1, m2) (offsetof(st, m1) - offsetof(st, m2) - pb_membersize(st, m2))
#define PB_LAST_FIELD {0,0,0,0}