pbc.c 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "pbc.h"
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include "readfile.h"
  5. void
  6. test_des(struct pbc_env * env , const char * pb)
  7. {
  8. struct pbc_slice slice;
  9. read_file(pb, &slice);
  10. struct pbc_rmessage * msg = pbc_rmessage_new(env, "google.protobuf.FileDescriptorSet", &slice);
  11. struct pbc_rmessage * file = pbc_rmessage_message(msg,"file",0);
  12. printf("name = %s\n",pbc_rmessage_string(file, "name", 0 , NULL));
  13. printf("package = %s\n",pbc_rmessage_string(file, "package", 0 , NULL));
  14. int sz = pbc_rmessage_size(file, "dependency");
  15. printf("dependency[%d] =\n" , sz);
  16. int i;
  17. for (i=0;i<sz;i++) {
  18. printf("\t%s\n",pbc_rmessage_string(file, "dependency", i , NULL));
  19. }
  20. sz = pbc_rmessage_size(file, "message_type");
  21. printf("message_type[%d] = \n",sz);
  22. for (i=0;i<sz;i++) {
  23. struct pbc_rmessage * message_type = pbc_rmessage_message(file,"message_type",i);
  24. printf("\tname = %s\n",pbc_rmessage_string(message_type,"name",0,NULL));
  25. }
  26. pbc_rmessage_delete(msg);
  27. int ret = pbc_register(env, &slice);
  28. printf("Register %d\n",ret);
  29. free(slice.buffer);
  30. }
  31. int
  32. main(int argc, char *argv[])
  33. {
  34. struct pbc_env * env = pbc_new();
  35. test_des(env,argv[1]);
  36. pbc_delete(env);
  37. return 0;
  38. }