Give names to generated structures to allow forward declaration.

Update issue 39
Status: FixedInGit
This commit is contained in:
Petteri Aimonen
2012-10-29 16:56:45 +02:00
parent bffd3a9acc
commit c3fa362653
2 changed files with 6 additions and 4 deletions

View File

@@ -75,7 +75,7 @@ class Enum:
self.values = [(self.names + x.name, x.number) for x in desc.value]
def __str__(self):
result = 'typedef enum {\n'
result = 'typedef enum _%s {\n' % self.names
result += ',\n'.join([" %s = %d" % x for x in self.values])
result += '\n} %s;' % self.names
return result
@@ -276,7 +276,7 @@ class Message:
return [str(field.ctype) for field in self.fields]
def __str__(self):
result = 'typedef struct {\n'
result = 'typedef struct _%s {\n' % self.name
result += '\n'.join([str(f) for f in self.ordered_fields])
result += '\n} %s;' % self.name
return result

6
pb.h
View File

@@ -148,10 +148,12 @@ struct _pb_field_t {
* It has the number of bytes in the beginning, and after that an array.
* Note that actual structs used will have a different length of bytes array.
*/
typedef struct {
struct _pb_bytes_array_t {
size_t size;
uint8_t bytes[1];
} pb_bytes_array_t;
};
typedef struct _pb_bytes_array_t pb_bytes_array_t;
/* This structure is used for giving the callback function.
* It is stored in the message structure and filled in by the method that