📄 _chat_bt_service_searcher_8cpp-source.html
字号:
<a name="l00101"></a>00101 <a name="l00102"></a>00102 <a class="code" href="class_c_chat_bt_service_searcher.html#00b02ec3d0048bbffaec9a5a74ba1898">iSdpSearchPattern</a>->AddL( <a class="code" href="class_c_chat_bt_service_searcher.html#a77aa7bd3e321d24397563b01bb689af">ServiceClass</a>() );<a name="l00103"></a>00103 <span class="comment">// return code is the position in the list that the UUID is inserted at </span><a name="l00104"></a>00104 <span class="comment">// and is intentionally ignored</span><a name="l00105"></a>00105 <a name="l00106"></a>00106 <a class="code" href="class_c_chat_bt_service_searcher.html#bf29ee7811a264162e45114d4eba89b7">iAgent</a>->SetRecordFilterL( *<a class="code" href="class_c_chat_bt_service_searcher.html#00b02ec3d0048bbffaec9a5a74ba1898">iSdpSearchPattern</a> );<a name="l00107"></a>00107 <a name="l00108"></a>00108 <a class="code" href="class_c_chat_bt_service_searcher.html#f32d5de215f836de78f1fe4cfa4abd3e">iStatusObserver</a> = &aObserverRequestStatus;<a name="l00109"></a>00109 <a name="l00110"></a>00110 <a class="code" href="class_c_chat_bt_service_searcher.html#bf29ee7811a264162e45114d4eba89b7">iAgent</a>->NextRecordRequestL();<a name="l00111"></a>00111 }<a name="l00112"></a>00112 <a name="l00113"></a>00113 <span class="comment">// ----------------------------------------------------------------------------</span><a name="l00114"></a>00114 <span class="comment">// CChatBtServiceSearcher::NextRecordRequestComplete()</span><a name="l00115"></a>00115 <span class="comment">// Process the result of the next record request.</span><a name="l00116"></a>00116 <span class="comment">// ----------------------------------------------------------------------------</span><a name="l00117"></a>00117 <span class="comment">//</span><a name="l00118"></a><a class="code" href="class_c_chat_bt_service_searcher.html#2a759a7d9eefa26695ecbec5584b4263">00118</a> <span class="keywordtype">void</span> <a class="code" href="class_c_chat_bt_service_searcher.html#2a759a7d9eefa26695ecbec5584b4263">CChatBtServiceSearcher::NextRecordRequestComplete</a>( <a name="l00119"></a>00119 TInt aError, <a name="l00120"></a>00120 TSdpServRecordHandle aHandle, <a name="l00121"></a>00121 TInt aTotalRecordsCount )<a name="l00122"></a>00122 {<a name="l00123"></a>00123 TRAPD( error, <a name="l00124"></a>00124 <a class="code" href="class_c_chat_bt_service_searcher.html#404bbdb6cd2c08c6bd7e40a4e05330c0">NextRecordRequestCompleteL</a>( aError, aHandle, aTotalRecordsCount ) );<a name="l00125"></a>00125 <a name="l00126"></a>00126 <span class="keywordflow">if</span> ( error != KErrNone ) <a name="l00127"></a>00127 {<a name="l00128"></a>00128 Panic( EChatBtServiceSearcherNextRecordRequestComplete );<a name="l00129"></a>00129 }<a name="l00130"></a>00130 }<a name="l00131"></a>00131 <a name="l00132"></a>00132 <span class="comment">// ----------------------------------------------------------------------------</span><a name="l00133"></a>00133 <span class="comment">// CChatBtServiceSearcher::NextRecordRequestCompleteL()</span><a name="l00134"></a>00134 <span class="comment">// Process the result of the next record request.</span><a name="l00135"></a>00135 <span class="comment">// ----------------------------------------------------------------------------</span><a name="l00136"></a>00136 <span class="comment">//</span><a name="l00137"></a><a class="code" href="class_c_chat_bt_service_searcher.html#404bbdb6cd2c08c6bd7e40a4e05330c0">00137</a> <span class="keywordtype">void</span> <a class="code" href="class_c_chat_bt_service_searcher.html#404bbdb6cd2c08c6bd7e40a4e05330c0">CChatBtServiceSearcher::NextRecordRequestCompleteL</a>( <a name="l00138"></a>00138 TInt aError, <a name="l00139"></a>00139 TSdpServRecordHandle aHandle, <a name="l00140"></a>00140 TInt aTotalRecordsCount )<a name="l00141"></a>00141 {<a name="l00142"></a>00142 <span class="keywordflow">if</span> ( aError == KErrEof )<a name="l00143"></a>00143 {<a name="l00144"></a>00144 <a class="code" href="class_c_chat_bt_service_searcher.html#0b7e2b5c9c80bd53f50bc0e518a464ec">Finished</a>();<a name="l00145"></a>00145 <span class="keywordflow">return</span>;<a name="l00146"></a>00146 }<a name="l00147"></a>00147 <a name="l00148"></a>00148 <span class="keywordflow">if</span> ( aError != KErrNone )<a name="l00149"></a>00149 {<a name="l00150"></a>00150 <a class="code" href="class_c_chat_bt_service_searcher.html#9d387bbae93f2ae894f3e1c32e6bf1c6">iLog</a>.<a class="code" href="class_m_log.html#70fb5098d98a8b349c056b46102d5de9">LogL</a>( KErrNRRCErr, aError );<a name="l00151"></a>00151 <a class="code" href="class_c_chat_bt_service_searcher.html#0b7e2b5c9c80bd53f50bc0e518a464ec">Finished</a>( aError );<a name="l00152"></a>00152 <span class="keywordflow">return</span>;<a name="l00153"></a>00153 }<a name="l00154"></a>00154 <a name="l00155"></a>00155 <span class="keywordflow">if</span> ( aTotalRecordsCount == 0 )<a name="l00156"></a>00156 {<a name="l00157"></a>00157 HBufC* errNRRCNoRecords = StringLoader<a name="l00158"></a>00158 ::LoadLC ( R_CHAT_ERR_NRRC_NO_RECORDS );<a name="l00159"></a>00159 <a class="code" href="class_c_chat_bt_service_searcher.html#9d387bbae93f2ae894f3e1c32e6bf1c6">iLog</a>.<a class="code" href="class_m_log.html#70fb5098d98a8b349c056b46102d5de9">LogL</a>( *errNRRCNoRecords );<a name="l00160"></a>00160 CleanupStack::PopAndDestroy ( errNRRCNoRecords );<a name="l00161"></a>00161 <a class="code" href="class_c_chat_bt_service_searcher.html#0b7e2b5c9c80bd53f50bc0e518a464ec">Finished</a>( KErrNotFound );<a name="l00162"></a>00162 <span class="keywordflow">return</span>;<a name="l00163"></a>00163 }<a name="l00164"></a>00164 <a name="l00165"></a>00165 <span class="comment">// Request its attributes</span><a name="l00166"></a>00166 <a class="code" href="class_c_chat_bt_service_searcher.html#bf29ee7811a264162e45114d4eba89b7">iAgent</a>->AttributeRequestL( aHandle, KSdpAttrIdProtocolDescriptorList );<a name="l00167"></a>00167 }<a name="l00168"></a>00168 <a name="l00169"></a>00169 <span class="comment">// ----------------------------------------------------------------------------</span><a name="l00170"></a>00170 <span class="comment">// CChatBtServiceSearcher::AttributeRequestResult()</span><a name="l00171"></a>00171 <span class="comment">// Process the next attribute requested.</span><a name="l00172"></a>00172 <span class="comment">// ----------------------------------------------------------------------------</span><a name="l00173"></a>00173 <span class="comment">//</span><a name="l00174"></a><a class="code" href="class_c_chat_bt_service_searcher.html#b379e7c6c82e99acbcd138c24daa38c7">00174</a> <span class="keywordtype">void</span> <a class="code" href="class_c_chat_bt_service_searcher.html#b379e7c6c82e99acbcd138c24daa38c7">CChatBtServiceSearcher::AttributeRequestResult</a>( <a name="l00175"></a>00175 TSdpServRecordHandle aHandle, <a name="l00176"></a>00176 TSdpAttributeID aAttrID, <a name="l00177"></a>00177 CSdpAttrValue* aAttrValue )<a name="l00178"></a>00178 {<a name="l00179"></a>00179 TRAPD( error, <a class="code" href="class_c_chat_bt_service_searcher.html#c2bd362f01ad7e4d671a33c062b42836">AttributeRequestResultL</a>( aHandle, aAttrID, aAttrValue ) );<a name="l00180"></a>00180 <span class="keywordflow">if</span> ( error != KErrNone )<a name="l00181"></a>00181 {<a name="l00182"></a>00182 Panic( EChatBtServiceSearcherAttributeRequestResult );<a name="l00183"></a>00183 }<a name="l00184"></a>00184 <span class="comment">// Delete obsolete local atribute pointer. </span><a name="l00185"></a>00185 <span class="keyword">delete</span> aAttrValue;<a name="l00186"></a>00186 aAttrValue = NULL;<a name="l00187"></a>00187 }<a name="l00188"></a>00188 <a name="l00189"></a>00189 <span class="comment">// ----------------------------------------------------------------------------</span><a name="l00190"></a>00190 <span class="comment">// CChatBtServiceSearcher::AttributeRequestResultL()</span><a name="l00191"></a>00191 <span class="comment">// Process the next attribute requested.</span><a name="l00192"></a>00192 <span class="comment">// ----------------------------------------------------------------------------</span><a name="l00193"></a>00193 <span class="comment">//</span><a name="l00194"></a><a class="code" href="class_c_chat_bt_service_searcher.html#c2bd362f01ad7e4d671a33c062b42836">00194</a> <span class="keywordtype">void</span> <a class="code" href="class_c_chat_bt_service_searcher.html#c2bd362f01ad7e4d671a33c062b42836">CChatBtServiceSearcher::AttributeRequestResultL</a>( <a name="l00195"></a>00195 TSdpServRecordHandle <span class="comment">/*aHandle*/</span>, <a name="l00196"></a>00196 TSdpAttributeID aAttrID, <a name="l00197"></a>00197 CSdpAttrValue* aAttrValue )<a name="l00198"></a>00198 {<a name="l00199"></a>00199 __ASSERT_ALWAYS( aAttrID == KSdpAttrIdProtocolDescriptorList, <a name="l00200"></a>00200 User::Leave( KErrNotFound ) );<a name="l00201"></a>00201 <a class="code" href="class_t_chat_sdp_attribute_parser.html">TChatSdpAttributeParser</a> parser( <a class="code" href="class_c_chat_bt_service_searcher.html#f6b20b18e1f84b2443b79ad7ad84f7a4">ProtocolList</a>(), *<span class="keyword">this</span> );<a name="l00202"></a>00202 <a name="l00203"></a>00203 <span class="comment">// Validate the attribute value, and extract the RFCOMM channel</span><a name="l00204"></a>00204 aAttrValue->AcceptVisitorL( parser );<a name="l00205"></a>00205 <a name="l00206"></a>00206 <span class="keywordflow">if</span> ( parser.<a class="code" href="class_t_chat_sdp_attribute_parser.html#ba5408005cbe1bf273e78972661ec9d5">HasFinished</a>() )<a name="l00207"></a>00207 {<a name="l00208"></a>00208 <span class="comment">// Found a suitable record so change state</span><a name="l00209"></a>00209 <a class="code" href="class_c_chat_bt_service_searcher.html#407431dfc0629433a93901ecf8326200">iHasFoundService</a> = ETrue;<a name="l00210"></a>00210 }<a name="l00211"></a>00211 }<a name="l00212"></a>00212 <a name="l00213"></a>00213 <span class="comment">// -----------------------------------------------------------------------------</span><a name="l00214"></a>00214 <span class="comment">// CChatBtServiceSearcher::AttributeRequestComplete()</span><a name="l00215"></a>00215 <span class="comment">// Process the attribute request completion.</span><a name="l00216"></a>00216 <span class="comment">// -----------------------------------------------------------------------------</span><a name="l00217"></a>00217 <span class="comment">//</span><a name="l00218"></a><a class="code" href="class_c_chat_bt_service_searcher.html#6c73c8c919f9d7de5cd49fa6fe68b63d">00218</a> <span class="keywordtype">void</span> <a class="code" href="class_c_chat_bt_service_searcher.html#6c73c8c919f9d7de5cd49fa6fe68b63d">CChatBtServiceSearcher::AttributeRequestComplete</a>( TSdpServRecordHandle aHandle,<a name="l00219"></a>00219 TInt aError )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -