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

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * msg.h - declarations for message manipulation
  3.  * 
  4.  * This file declares the Msg data type and the functions to manipulate it.
  5.  * 
  6.  * Lars Wirzenius
  7.  */
  8. #ifndef MSG_H
  9. #define MSG_H
  10. #include "gwlib/gwlib.h"
  11. enum msg_type {
  12. #define MSG(type, stmt) type,
  13. #include "msg-decl.h"
  14. msg_type_count
  15. };
  16. typedef struct {
  17. enum msg_type type;
  18. #define INTEGER(name) long name
  19. #define OCTSTR(name) Octstr *name
  20. #define MSG(type, stmt) struct type stmt type;
  21. #include "msg-decl.h"
  22. } Msg;
  23. /* enums for Msg fields */
  24. /* sms message type */
  25. enum {
  26.     mo = 0,
  27.     mt_reply = 1,
  28.     mt_push = 2,
  29.     report = 3
  30. };
  31. /* admin commands */
  32. enum {
  33.     cmd_shutdown = 0,
  34.     cmd_suspend = 1,
  35.     cmd_resume = 2
  36. };
  37. /*
  38.  * Create a new, empty Msg object. Panics if fails.
  39.  */
  40. Msg *msg_create(enum msg_type type);
  41. /*
  42.  * Create a new Msg object that is a copy of an existing one.
  43.  * Panics if fails.
  44.  */
  45. Msg *msg_duplicate(Msg *msg);
  46. /*
  47.  * Return type of the message
  48.  */
  49. enum msg_type msg_type(Msg *msg);
  50. /*
  51.  * Destroy an Msg object. All fields are also destroyed.
  52.  */
  53. void msg_destroy(Msg *msg);
  54. /*
  55.  * Destroy an Msg object. Wrapper around msg_destroy to make it suitable for
  56.  * list_destroy.
  57.  */
  58. void msg_destroy_item(void *msg);
  59. /*
  60.  * For debugging: Output with `debug' (in gwlib/log.h) the contents of
  61.  * an Msg object.
  62.  */
  63. void msg_dump(Msg *msg, int level);
  64. /*
  65.  * Pack an Msg into an Octstr. Panics if fails.
  66.   */
  67. Octstr *msg_pack(Msg *msg);
  68. /*
  69.  * Unpack an Msg from an Octstr. Return NULL for failure, otherwise a pointer
  70.  * to the Msg.
  71.  */
  72. Msg *msg_unpack(Octstr *os);
  73. #endif