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

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * wtp_resp_machine.def - macro call for generating WTP responder statemachine.
  3.  * See the architecture document for guidance how to use and update it.
  4.  *
  5.  * By Aarno Syv鋘en for Wapit Ltd.
  6.  *
  7.  * WTPRespMachine data structure includes current state of WTP responder state 
  8.  * machine for a specific transaction. This means all data needed to handle at
  9.  * least two incoming events of a certain transaction. Its fields can be 
  10.  * grouped following way:
  11.  *
  12.  * General: wtp responder machine state 
  13.  *
  14.  * Fields telling the service required: 
  15.  *               a) transaction class (is transaction confirmed or not) 
  16.  *               b) user acknowledgement flag (do we wait for response primit-
  17.  *                  ive of WTP user (for instance, WSP) or not)
  18.  *
  19.  * Machine identification: address four-tuple and transaction identifier
  20.  * 
  21.  * Field required for tid verification: 
  22.  *               a) packed wsp invoke indication, which is required by the 
  23.  *                  protocol
  24.  *
  25.  * Fields required for reliable transmission: 
  26.  *               a) pointer to the timer of this machine in the timers list
  27.  *               b) counters for acknowledgement waiting periods and retrans- 
  28.  *                  missions 
  29.  *               c) flag telling are we resending the result or not
  30.  *               d) similar flag for acknowledgements
  31.  *               e) packed result message, for greater effectivity
  32.  */
  33. #if !defined(MACHINE) 
  34.     #error "Macro MACHINE is missing."
  35. #elif !defined(INTEGER) 
  36.     #error "Macro INTEGER is missing."
  37. #elif !defined(ENUM) 
  38.     #error "Macro ENUM is missing."
  39. #elif !defined(TIMER) 
  40.     #error "Macro TIMER is missing."
  41. #elif !defined(EVENT) 
  42.     #error "Macro EVENT is missing."
  43. #elif !defined(ADDRTUPLE)
  44.     #error "Macro ADDRTUPLE is missing."
  45. #endif
  46. MACHINE(ENUM(state)
  47.         INTEGER(tid)              /* transaction identifier */
  48. ADDRTUPLE(addr_tuple)
  49.         INTEGER(tcl)              /* transaction class */
  50.         INTEGER(aec)              /* counter telling how many timer periods 
  51.                                       we have waited for acknowledgement */
  52.         INTEGER(rcr)              /* retransmission counter */
  53.         INTEGER(u_ack)            /* user acknowledgement flag (are user 
  54.                                       acknowledgement required) */ 
  55.         INTEGER(rid)              /* retransmission flag, telling are we 
  56.                                       resending the result */ 
  57.         EVENT(result)               /* packed result message - for resending */
  58.         INTEGER(ack_pdu_sent)     /* are we resending the acknowledgement */
  59.         TIMER(timer)              /* pointer to the timer of this machine timer
  60.                                       in the global timers list */
  61.         EVENT(invoke_indication) /* packed wsp invoke indication - for tid
  62.                                          verification */
  63. )
  64. #undef MACHINE
  65. #undef INTEGER
  66. #undef ENUM
  67. #undef TIMER
  68. #undef EVENT
  69. #undef ADDRTUPLE