test_pap.c
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:2k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * test_pap.c: A simple program to test pap compiler
  3.  *
  4.  * By Aarno Syv鋘en for Wiral Ltd
  5.  */
  6. #include <stdio.h>
  7. #include "gwlib/gwlib.h"
  8. #include "gw/wap_push_pap_compiler.h"
  9. #include "wap/wap_events.h"
  10. static void help (void)
  11. {
  12.     info(0, "Usage test_pap [option] pap_source");
  13.     info(0, "where options are");
  14.     info(0, "-h print this text");
  15.     info(0, "-v level set log level for stderr logging");
  16.     info(0, "-l log wap event to this file");
  17. }
  18. int main(int argc, char **argv)
  19. {
  20.     int opt,
  21.         ret;
  22.     Octstr *pap_doc,
  23.            *log_file;
  24.     WAPEvent *e;
  25.     log_file = NULL;
  26.     gwlib_init();
  27.     
  28.     while ((opt = getopt(argc, argv, "h:v:l:")) != EOF) {
  29.         switch (opt) {
  30.         case 'h':
  31.     help();
  32.             exit(1);
  33. break;
  34.         case 'v':
  35.     log_set_output_level(atoi(optarg));
  36. break;
  37.         case 'l':
  38.     octstr_destroy(log_file);
  39.     log_file = octstr_create(optarg);
  40. break;
  41.         case '?':
  42.         default:
  43.     error(0, "Invalid option %c", opt);
  44.             help();
  45.             panic(0, "Stopping");
  46. break;
  47.         }
  48.     }
  49.     if (optind >= argc) {
  50.         error(0, "Missing arguments");
  51.         help();
  52.         panic(0, "Stopping");
  53.     }
  54.     if (log_file != NULL) {
  55.      log_open(octstr_get_cstr(log_file), GW_DEBUG);
  56. octstr_destroy(log_file);
  57.     }
  58.     pap_doc = octstr_read_file(argv[optind]);
  59.     if (pap_doc == NULL)
  60.         panic(0, "Cannot read the pap document");
  61.     e = NULL;
  62.     ret = pap_compile(pap_doc, &e);
  63.     
  64.     if (ret < 0) {
  65.         debug("test.pap", 0, "Unable to compile the pap document"); 
  66.         return 1;           
  67.     } 
  68.     debug("test.pap", 0, "Compiling successfull, wap event being:n");
  69.     wap_event_dump(e);
  70.     wap_event_destroy(e);
  71.     octstr_destroy(pap_doc);
  72.     gwlib_shutdown();
  73.     return 0;
  74. }