wsp_client_method_states.def

来自「mms client」· DEF 代码 · 共 356 行

DEF
356
字号
/* * wsp_client_method_states.def * * Macro calls to generate rows of the state table. See the documentation for * guidance how to use and update these. * * Note that the `NULL' state has been renamed to `NULL_METHOD' because * NULL is reserved by C. */STATE_NAME(NULL_METHOD)STATE_NAME(REQUESTING)STATE_NAME(WAITING)STATE_NAME(WAITING2)STATE_NAME(COMPLETING)ROW(NULL_METHOD,	S_MethodInvoke_Req,	1,	{        Octstr *opdu = NULL;                if (octstr_compare(current_event->u.S_MethodInvoke_Req.method, octstr_imm("GET")) == 0) {            /* get request */            opdu = make_get_pdu(current_event->u.S_MethodInvoke_Req.request_headers, current_event->u.S_MethodInvoke_Req.request_uri);        }        else if (octstr_compare(current_event->u.S_MethodInvoke_Req.method, octstr_imm("POST")) == 0) {             /* post request */             opdu = make_post_pdu(current_event->u.S_MethodInvoke_Req.request_headers, current_event->u.S_MethodInvoke_Req.request_uri, current_event->u.S_MethodInvoke_Req.request_body);        }        /* TR-Invoke.req(Class 2, Method, MoreData) */        if (opdu != NULL)             send_invoke(sm, opdu, 0, PROVIDER_ACKNOWLEDGEMENT, TRANSACTION_CLASS_2);	},	REQUESTING)ROW(REQUESTING,	S_MethodAbort_Req,	1,	{        /* TR-Abort.req(PEERREQ) the Method */        abort_method(sm, current_event->u.S_MethodAbort_Req.transaction_id, WSP_ABORT_PEERREQ);        /* S-MethodAbort.ind(USERREQ) */        indicate_method_abort(msm, WSP_ABORT_USERREQ);	},	NULL_METHOD)ROW(REQUESTING,	Abort_Event,	1,	{        /* TR-Abort.req(abort reason) the Method */        abort_method(sm, msm->transaction_id, current_event->u.Abort_Event.reason);        /* S-MethodAbort.ind(abort reason) */        indicate_method_abort(msm, current_event->u.Abort_Event.reason);	},	NULL_METHOD)ROW(REQUESTING,	TR_Invoke_Cnf,	1,	{        /* S-MethodInvoke.cnf */        confirm_methodinvoke(msm);	},	WAITING)ROW(REQUESTING,	TR_Abort_Ind,	e->abort_code == WSP_ABORT_DISCONNECT,	{        WAPEvent *wsp_event;        /* Disconnect the session */		wsp_event = wap_event_create(Disconnect_Event);		wsp_event->u.Disconnect_Event.session_handle = msm->session_handle;        wsp_event->priority = 1; /* top of the queue */        wsp_client_session_dispatch_event(wsp_event);	},	REQUESTING)ROW(REQUESTING,	TR_Abort_Ind,	e->abort_code == WSP_ABORT_SUSPEND,	{        WAPEvent *wsp_event;        /* suspend the session */		wsp_event = wap_event_create(Suspend_Event);		wsp_event->u.Disconnect_Event.session_handle = msm->session_handle;        wsp_event->priority = 1; /* top of the queue */        wsp_client_session_dispatch_event(wsp_event);	},	REQUESTING)ROW(REQUESTING,	TR_Abort_Ind,	e->abort_code != WSP_ABORT_DISCONNECT && e->abort_code != WSP_ABORT_SUSPEND,	{        /* S-MethodAbort.ind(abort reason) */        indicate_method_abort(msm, current_event->u.TR_Abort_Ind.abort_code);	},	NULL_METHOD)ROW(WAITING,	S_MethodAbort_Req,	1,	{        /* TR-Abort.req(PEERREQ) the Method */        abort_method(sm, current_event->u.S_MethodAbort_Req.transaction_id, WSP_ABORT_PEERREQ);        /* S-MethodAbort.ind(USERREQ) */        indicate_method_abort(msm, WSP_ABORT_USERREQ);	},	NULL_METHOD)ROW(WAITING,	Abort_Event,	1,	{        /* TR-Abort.req(abort reason) the Method */        abort_method(sm, msm->transaction_id, current_event->u.Abort_Event.reason);        /* S-MethodAbort.ind(abort reason) */        indicate_method_abort(msm, current_event->u.Abort_Event.reason);	},	NULL_METHOD)ROW(WAITING,	TR_Result_Ind,	pdu->type == Reply,	{        /* S-MethodResult.ind(headers, body, moredata) */        indicate_method_result(msm, wsp_headers_unpack(pdu->u.Reply.headers, 1), pdu->u.Reply.data, pdu->u.Reply.status);	},	COMPLETING)ROW(WAITING,	TR_Result_Ind,	pdu->type != Reply /* other */,	{        /* TR-Abort.req(PROTOERR */        abort_method(sm, e->handle, WSP_ABORT_PROTOERR);       /* S-MethodAbort.ind(PROTOERR reason) */        indicate_method_abort(msm, WSP_ABORT_PROTOERR);	},	NULL_METHOD)ROW(WAITING,	TR_Abort_Ind,	e->abort_code == WSP_ABORT_DISCONNECT,	{        WAPEvent *wsp_event;        /* Disconnect the session */		wsp_event = wap_event_create(Disconnect_Event);		wsp_event->u.Disconnect_Event.session_handle = msm->session_handle;        wsp_event->priority = 1; /* top of the queue */        wsp_client_session_dispatch_event(wsp_event);	},	WAITING)ROW(WAITING,	TR_Abort_Ind,	e->abort_code == WSP_ABORT_SUSPEND,	{        WAPEvent *wsp_event;        /* suspend the session */		wsp_event = wap_event_create(Suspend_Event);		wsp_event->u.Disconnect_Event.session_handle = msm->session_handle;        wsp_event->priority = 1; /* top of the queue */        wsp_client_session_dispatch_event(wsp_event);	},	WAITING)ROW(WAITING,	TR_Abort_Ind,	e->abort_code != WSP_ABORT_DISCONNECT && e->abort_code != WSP_ABORT_SUSPEND,	{        /* S-MethodAbort.ind(abort reason) */        indicate_method_abort(msm, current_event->u.TR_Abort_Ind.abort_code);	},	NULL_METHOD)/*ROW(WAITING2,	S_MethodAbort_Req,	1,	{        // TR-Abort.req(PEERREQ) the Method //        // S-MethodAbort.ind(USERREQ) //	},	NULL_METHOD)ROW(WAITING2,	Abort_Event,	1,	{        // TR-Abort.req(abort reason) the Method //        // S-MethodAbort.ind(abort reason) //	},	NULL_METHOD)ROW(WAITING2,	TR-Result_Ind,	// SDU size > MRU //,	{        // TR-Abort.req(MRUEXCEEDED //        // S-MethodAbort.ind(MRUEXCEEDED reason) //	},	NULL_METHOD)ROW(WAITING2,	TR-Result_Ind,	// Response body, MoreData flag set //,	{        // TR-ResultData.res //        // S-MethodResultData.ind(body, moredata) //	},	WAITING2)ROW(WAITING2,	TR-Result_Ind,	// Frame boundary, Data Fragment PDU, MoreData flag cleared //,	{        // S-MethodResult.ind(headers, body, moredata) //	},	COMPLETING)ROW(WAITING2,	TR-Result_Ind,	// No Frame boundary, Response Body, moredata flag cleared //,	{        // S-MethodResult.ind(body, moredata) //	},	COMPLETING)ROW(WAITING2,	TR_Abort_Ind,	// reason == DISCONNECT //,	{        // Disconnect the session //	},	WAITING2)ROW(WAITING2,	TR_Abort_Ind,	// reason == SUSPEND //,	{        // suspend the session //	},	WAITING2)ROW(WAITING2,	TR_Abort_Ind,	// other //,	{        // S-MethodAbort.ind(abort reason) //	},	NULL_METHOD)*/ROW(COMPLETING,	S_MethodResult_Res,	1,	{        /* TR-Result.res(Exit info = Acknowledgement Headers */        sendResultResponse(current_event->u.S_MethodResult_Res.session_handle);	},	NULL_METHOD)ROW(COMPLETING,	S_MethodAbort_Req,	1,	{        /* TR-Abort.req(PEERREQ) the Method */        abort_method(sm, current_event->u.S_MethodAbort_Req.transaction_id, WSP_ABORT_PEERREQ);        /* S-MethodAbort.ind(USERREQ) */        indicate_method_abort(msm, WSP_ABORT_USERREQ);	},	NULL_METHOD)ROW(COMPLETING,	Abort_Event,	1,	{        /* TR-Abort.req(abort reason) the Method */        abort_method(sm, msm->transaction_id, current_event->u.Abort_Event.reason);        /* S-MethodAbort.ind(abort reason) */        indicate_method_abort(msm, current_event->u.Abort_Event.reason);	},	NULL_METHOD)ROW(COMPLETING,	TR_Abort_Ind,	e->abort_code == WSP_ABORT_DISCONNECT,	{        WAPEvent *wsp_event;        /* Disconnect the session */		wsp_event = wap_event_create(Disconnect_Event);		wsp_event->u.Disconnect_Event.session_handle = msm->session_handle;        wsp_event->priority = 1; /* top of the queue */        wsp_client_session_dispatch_event(wsp_event);	},	COMPLETING)ROW(COMPLETING,	TR_Abort_Ind,	e->abort_code == WSP_ABORT_SUSPEND,	{        WAPEvent *wsp_event;        /* suspend the session */		wsp_event = wap_event_create(Suspend_Event);		wsp_event->u.Disconnect_Event.session_handle = msm->session_handle;        wsp_event->priority = 1; /* top of the queue */        wsp_client_session_dispatch_event(wsp_event);	},	COMPLETING)ROW(COMPLETING,	TR_Abort_Ind,	e->abort_code != WSP_ABORT_DISCONNECT && e->abort_code != WSP_ABORT_SUSPEND,	{        /* S-MethodAbort.ind(abort reason) */        indicate_method_abort(msm, current_event->u.TR_Abort_Ind.abort_code);	},	NULL_METHOD)#undef ROW#undef STATE_NAME

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?