summaryrefslogtreecommitdiff
path: root/examples/msg.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/msg.c')
-rw-r--r--examples/msg.c59
1 files changed, 0 insertions, 59 deletions
diff --git a/examples/msg.c b/examples/msg.c
deleted file mode 100644
index 487e743..0000000
--- a/examples/msg.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * upb - a minimalist implementation of protocol buffers.
- *
- * Copyright (c) 2011 Google Inc. See LICENSE for details.
- * Author: Josh Haberman <jhaberman@gmail.com>
- *
- * A simple example that demonstrates creating a standard message object
- * and parsing into it, using a dynamic reflection-based approach.
- *
- * Note that with this approach there are no strongly-typed struct or class
- * definitions to use from C -- this is essentially a reflection-based
- * interface. Note that parsing and serializing are still very fast since
- * they are JIT-based.
- *
- * If this seems a bit verbose, you may prefer an approach that generates
- * strongly-typed struct definitions (upb will likely provide this, but it is
- * not yet implemented).
- *
- * TODO: make this file compiled as part of "make examples"
- * TODO: test that this actually works (WARNING: UNTESTED!)
- */
-
-#include "upb/msg.h"
-#include "upb/pb/glue.h"
-
-const char *descfile = "example.proto.pb";
-const char *type = "example.SampleMessage";
-const char *msgfile = "sample_message.pb";
-
-int main() {
- // First we load the descriptor that describes the message into a upb_msgdef.
- // This could come from a string that is compiled into the program or from a
- // separate file as we do here. Since defs always live in a symtab, we
- // create one of those also.
- upb_symtab *s = upb_symtab_new();
- upb_status status = UPB_STATUS_INIT;
- if (!upb_load_descriptor_file_into_symtab(s, descfile, &status)) {
- fprintf(stderr, "Couldn't load descriptor file '%s': %s\n", descfile,
- upb_status_getstr(&status));
- return -1;
- }
-
- const upb_msgdef *md = upb_symtab_lookupmsg(s, type);
- if (!md) {
- fprintf(stderr, "Descriptor did not contain type '%s'\n", type);
- return -1;
- }
-
- // Parse a file into a new message object.
- void *msg = upb_filetonewmsg(msgfile, md, &status);
- if (!msg) {
- fprintf(stderr, "Error parsing message file '%s': %s\n", msgfile,
- upb_status_getstr(&status));
- return -1;
- }
-
- // TODO: Inspect some fields.
- return 0;
-}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback