gsoap框架下的onvif程序流程分析
2014-04-23 09:40
597 查看
SOAP_FMAC5 int SOAP_FMAC6 soap_serve(struct soap *soap) { do { unsigned int k = soap->max_keep_alive; if (soap->max_keep_alive > 0 && !--k) soap->keep_alive = 0; if (soap_begin_serve(soap)) { if (soap->error >= SOAP_STOP) continue; return soap->error; } /*soap_begin_serve()函数在buf中解析到<body>位置,soap_server_request继续解析下一个元素,这个元素就是一种request。 soap_serve_request()函数就是我们开放新功能的地方*/ if (soap_serve_request(soap) || (soap->fserveloop && soap->fserveloop(soap))) { return soap_send_fault(soap); } } while (soap->keep_alive); return SOAP_OK; } soap_begin_serve(struct soap *soap) { soap_begin(soap); if (soap_begin_recv(soap) //阻塞在这里 收到消息后 调用http_parse解析http头部 || soap_envelope_begin_in(soap) /*从buf中找寻envelope开始标签(begin),in代表是从buf中解析结构 out代表把结构填充到buf中去。可以在这里做分流, 有<envelope>认为是onvif部分继续交gsoap处理,没有的交http服务器处理。*/ || soap_recv_header(soap) //从buf中分离出header域。 || soap_body_begin_in(soap)) //找寻body的开始标签 { if (soap->error < SOAP_STOP) { if(soap->error!=SOAP_GET_METHOD && soap->error!=405) { return soap_send_fault(soap); //此句是原句 } else { return soap->error; } } return soap_closesock(soap); } return SOAP_OK; }
相关文章推荐
- x264程序框架流程分析
- ONVIF协议网络摄像机(IPC)客户端程序开发(4):使用gSOAP生成Web Services框架代码
- Windows下用gSoap编译Onvif框架流程总结
- ONVIF协议网络摄像机(IPC)客户端程序开发(6):使用gSOAP生成ONVIF框架代码
- 基于ONVIF协议的(IPC)客户端程序开发-5:使用gSOAP生成ONVIF框架代码
- ONVIF协议网络摄像机(IPC)客户端程序开发(6):使用gSOAP生成ONVIF框架代码
- 基于ONVIF协议的(IPC)客户端程序开发-3:使用gSOAP生成Web Services框架代码
- x264程序框架流程分析
- Android5.1 Telecomm层通话去电流程两路进程分析之一通话去电流程框架介绍
- wifi 框架流程分析
- 网狐框架分析七--完整游戏流程 150624
- HEVC/H.265整个程序调用流程分析以及函数复杂度分析 .
- onvif学习笔记3:Windows环境使用gsoap生成onvif框架代码
- WordCount程序运行流程分析
- SSM框架Web程序的流程(Spring SpringMVC Mybatis)
- Android 框架研究:(一)框架概要 —— 1.3 启动流程的分析
- 转:Android之 MTP框架和流程分析
- CC2541之SimpleBLEPeripheral程序流程分析 -- 01.启动和事件轮询
- 第二部分 程序框架实现的线程分析
- 三星6410摄像头测试程序流程分析