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

手机WAP编程

开发平台:

WINDOWS

  1. /*
  2.  * wtp_init_machine.def: macro call for generating WTP initiator state 
  3.  * machine. See the architecture document for guidance how to use and update 
  4.  * it.
  5.  *
  6.  * By Aarno Syv鋘en for Wapit Ltd.
  7.  *
  8.  * WTPRespMachine data structure includes current state of WTP responder state 
  9.  * machine for a specific transaction. This means all data needed to handle at
  10.  * least two incoming events of a certain transaction. Its fields can be 
  11.  * grouped following way:
  12.  *
  13.  * General:      a) wtp initiator machine state 
  14.  *               b) tidnew flag, telling whether tid is wrapped up
  15.  *
  16.  * Fields telling the service required: 
  17.  *               a) transaction class (is transaction confirmed or not) 
  18.  *               b) user acknowledgement flag (do we wait for response 
  19.  *                  primitive of WTP user (for instance, WSP) or not)
  20.  *
  21.  * Machine identification: address four-tuple and transaction identifier
  22.  *
  23.  * Fields required for reliable transmission: 
  24.  *               a) pointer to the timer of this machine in the timers list
  25.  *               b) counter for retransmissions 
  26.  *               c) flag telling are we resending ack pdu doing tid verifica-
  27.  *                  tion or not
  28.  *               d) packed invoke message, for greater effectivity
  29.  */
  30. #if !defined(MACHINE) 
  31.     #error "Macro MACHINE is missing."
  32. #elif !defined(INTEGER) 
  33.     #error "Macro INTEGER is missing."
  34. #elif !defined(ENUM)  
  35.     #error "Macro ENUM is missing."
  36. #elif !defined(EVENT)  
  37.     #error "Macro EVENT is missing."
  38. #elif !defined(TIMER) 
  39.     #error "Macro TIMER is missing."
  40. #elif !defined(ADDRTUPLE)
  41.     #error "Macro ADDRTUPLE is missing."
  42. #endif
  43. MACHINE(ENUM(state)
  44.         INTEGER(tid)             /* transaction identifier */
  45.         ADDRTUPLE(addr_tuple)
  46.         INTEGER(tidnew)          /* tidnew flag */
  47.         INTEGER(u_ack)           /* user acknowledgement flag */
  48.         EVENT(invoke)            /* invoke datagram for resending */
  49.         TIMER(timer)
  50.         INTEGER(rcr)             /* retransmission counter */
  51.         INTEGER(tidok_sent)      /* are we resending tid verification */
  52.         INTEGER(rid)             /* are we resending invoke */
  53.        )
  54. #undef MACHINE
  55. #undef ENUM
  56. #undef EVENT
  57. #undef INTEGER
  58. #undef ADDRTUPLE
  59. #undef TIMER