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

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * WTLS Server Header
  3.  *
  4.  * Nick Clarey <nclarey@3glab.com>
  5.  */
  6. #ifndef WTLS_H
  7. #define WTLS_H
  8. typedef struct WTLSMachine WTLSMachine;
  9. #include "gw/msg.h"
  10. //#include "gw/wapbox.h"
  11. #include "wap/wap_events.h"
  12. #include "wap/wtls_pdu.h"
  13. /*
  14.  * WTLS Server machine states and WTLS machine.
  15.  * See file wtls_state-decl.h for comments. Note that we must define macro
  16.  * ROW to produce an empty string.
  17.  */
  18. enum serv_states {
  19.     #define STATE_NAME(state) state,
  20.     #define ROW(state, event, condition, action, next_state)
  21.     #include "wtls_state-decl.h"
  22.     serv_states_count
  23. };
  24. typedef enum serv_states serv_states;
  25. /*
  26.  * See files wtls_machine-decl.h for comments. We define one macro for 
  27.  * every separate type.
  28.  */ 
  29. struct WTLSMachine {
  30.        unsigned long mid;
  31.        #define ENUM(name) serv_states name;
  32.        #define ADDRTUPLE(name) WAPAddrTuple *name;
  33.        #define INTEGER(name) int name;
  34.        #define OCTSTR(name) Octstr *name;
  35.        #define MACHINE(field) field
  36.        #define PDULIST(name) List *name;
  37.        #include "wtls_machine-decl.h"
  38. };
  39. /*
  40.  * Initialize the WTLS server.
  41.  */
  42. void wtls_init(void);
  43. /*
  44.  * Shut down the WTLS server machines. MUST be called after the subsystem isn't
  45.  * used anymore.
  46.  */
  47. void wtls_shutdown(void);
  48. /*
  49.  * Transfers control of an event to the WTLS server machine subsystem.
  50.  */ 
  51. void wtls_dispatch_event(WAPEvent *event);
  52. /*
  53.  * Handles possible concatenated messages. Returns a list of wap events. 
  54.  * Real unpacking is done by an internal function.
  55.  */
  56. WAPEvent *wtls_unpack_wdp_datagram(Msg *msg);
  57. int wtls_get_address_tuple(long mid, WAPAddrTuple **tuple);
  58. #endif