summaryrefslogtreecommitdiff
path: root/upb/descriptor/reader.h
diff options
context:
space:
mode:
Diffstat (limited to 'upb/descriptor/reader.h')
-rw-r--r--upb/descriptor/reader.h31
1 files changed, 10 insertions, 21 deletions
diff --git a/upb/descriptor/reader.h b/upb/descriptor/reader.h
index f9d0046..700fd65 100644
--- a/upb/descriptor/reader.h
+++ b/upb/descriptor/reader.h
@@ -19,13 +19,10 @@ namespace descriptor {
class Reader;
} // namespace descriptor
} // namespace upb
-
-typedef upb::descriptor::Reader upb_descreader;
-#else
-struct upb_descreader;
-typedef struct upb_descreader upb_descreader;
#endif
+UPB_DECLARE_TYPE(upb::descriptor::Reader, upb_descreader);
+
// Internal-only structs used by Reader.
// upb_deflist is an internal-only dynamic array for storing a growing list of
@@ -62,11 +59,9 @@ typedef struct {
// TODO: make this a runtime-settable property of the Reader instance.
#define UPB_MAX_MESSAGE_NESTING 64
-#ifdef __cplusplus
-
// Class that receives descriptor data according to the descriptor.proto schema
// and use it to build upb::Defs corresponding to that schema.
-class upb::descriptor::Reader {
+UPB_DEFINE_CLASS0(upb::descriptor::Reader,
public:
// These handlers must have come from NewHandlers() and must outlive the
// Reader.
@@ -96,12 +91,9 @@ class upb::descriptor::Reader {
// Builds and returns handlers for the reader, owned by "owner."
static Handlers* NewHandlers(const void* owner);
-
- private:
-#else
-struct upb_descreader {
-#endif
- char sink[sizeof(upb_sink)];
+,
+UPB_DEFINE_STRUCT0(upb_descreader,
+ upb_sink sink;
upb_deflist defs;
upb_descreader_frame stack[UPB_MAX_MESSAGE_NESTING];
int stack_len;
@@ -114,11 +106,9 @@ struct upb_descreader {
char *default_string;
upb_fielddef *f;
-};
+));
-#ifdef __cplusplus
-extern "C" {
-#endif
+UPB_BEGIN_EXTERN_C // {
// C API.
void upb_descreader_init(upb_descreader *r, const upb_handlers *handlers,
@@ -129,11 +119,10 @@ upb_sink *upb_descreader_input(upb_descreader *r);
upb_def **upb_descreader_getdefs(upb_descreader *r, void *owner, int *n);
const upb_handlers *upb_descreader_newhandlers(const void *owner);
-#ifdef __cplusplus
-} // extern "C"
+UPB_END_EXTERN_C // }
+#ifdef __cplusplus
// C++ implementation details. /////////////////////////////////////////////////
-
namespace upb {
namespace descriptor {
inline Reader::Reader(const Handlers *h, Status *s) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback