⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class_c_address_book_engine.html

📁 symbian v9.1 下的地址本程序
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<a name="l00311"></a>00311                         {<a name="l00312"></a>00312                         _LIT( KEncResID, <span class="stringliteral">"EncryptedResourceID exists."</span>);<a name="l00313"></a>00313                         LOG(KEncResID);<a name="l00314"></a>00314                         _LIT8 (KResourceElement, <span class="stringliteral">"ab:EncryptedResourceID"</span>);<a name="l00315"></a>00315                         resourceElement = CSenBaseElement::NewL(KResourceElement);<a name="l00316"></a>00316                         CleanupStack::PushL(resourceElement);   <a name="l00317"></a>00317                         <span class="comment">// copy the actual resource id content</span><a name="l00318"></a>00318                         resourceElement-&gt;CopyFromL(*resourceID);<a name="l00319"></a>00319                         }<a name="l00320"></a>00320                 <span class="keywordflow">else</span><a name="l00321"></a>00321                         {<a name="l00322"></a>00322                         _LIT( KOnlyPlainResID, <span class="stringliteral">"Only plain ResourceID should be used (not encrypted)."</span>);<a name="l00323"></a>00323                         LOG( KOnlyPlainResID);<a name="l00324"></a>00324                         _LIT8 (KResourceElement, <span class="stringliteral">"ab:ResourceID"</span>);<a name="l00325"></a>00325                         resourceElement = CSenBaseElement::NewL(KResourceElement);<a name="l00326"></a>00326                         CleanupStack::PushL(resourceElement);   <a name="l00327"></a>00327                         <span class="comment">// Copy the actual resource id content</span><a name="l00328"></a>00328                         resourceElement-&gt;CopyFromL(*resourceID);<a name="l00329"></a>00329                         }<a name="l00330"></a>00330                 }<a name="l00331"></a>00331         <span class="keywordflow">else</span><a name="l00332"></a>00332                 {<a name="l00333"></a>00333                 _LIT( KErrResID, <span class="stringliteral">"Error: could not resolve ResourceID!"</span>);<a name="l00334"></a>00334                 LOG( KErrResID);<a name="l00335"></a>00335                 _LIT8 (KResourceElement, <span class="stringliteral">"ab:ResourceID"</span>);<a name="l00336"></a>00336                 resourceElement=CSenBaseElement::NewL(KResourceElement);        <a name="l00337"></a>00337                 CleanupStack::PushL(resourceElement);   <a name="l00338"></a>00338                 resourceElement-&gt;SetContentL(KResourceIDVal); <span class="comment">// example content</span><a name="l00339"></a>00339                 }<a name="l00340"></a>00340         element-&gt;AddElementL(*resourceElement);<a name="l00341"></a>00341         CleanupStack::Pop(resourceElement); <a name="l00342"></a>00342         <a name="l00343"></a>00343         <span class="comment">//Get the XML</span><a name="l00344"></a>00344         HBufC8* soapBuf = element-&gt;AsXmlL();<a name="l00345"></a>00345 <a name="l00346"></a>00346         <span class="comment">// Log the XML request</span><a name="l00347"></a>00347     _LIT( KGenQuery, <span class="stringliteral">"Generated Query:"</span>);<a name="l00348"></a>00348     LOG( KGenQuery);<a name="l00349"></a>00349         LOG_ALL(( soapBuf-&gt;Des() ));<a name="l00350"></a>00350         <a name="l00351"></a>00351         <span class="comment">//Destroy the objects pushed on cleanup stack</span><a name="l00352"></a>00352         CleanupStack::PopAndDestroy(pattern);<a name="l00353"></a>00353         CleanupStack::PopAndDestroy(tempBuffer);<a name="l00354"></a>00354         CleanupStack::Pop(selectElement);<a name="l00355"></a>00355         CleanupStack::Pop(queryItem);<a name="l00356"></a>00356         CleanupStack::PopAndDestroy(element);<a name="l00357"></a>00357         <span class="comment">//return Pointer to Soap Request Buffer;</span><a name="l00358"></a>00358         <span class="keywordflow">return</span> soapBuf;<a name="l00359"></a>00359         }</pre></div><p>    </td>  </tr></table><a class="anchor" name="a575736176d644c609425a199cd04601"></a><!-- doxytag: member="CAddressBookEngine::StartElementL" ref="a575736176d644c609425a199cd04601" args="(const TDesC8 &amp;aNsUri, const TDesC8 &amp;aLocalName, const TDesC8 &amp;aQName, const RAttributeArray &amp;aAttrs)" --><p><table class="mdTable" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top">void CAddressBookEngine::StartElementL           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const TDesC8 &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>aNsUri</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>const TDesC8 &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>aLocalName</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>const TDesC8 &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>aQName</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>const RAttributeArray &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>aAttrs</em></td>        </tr>        <tr>          <td class="md"></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"><code> [protected, virtual]</code></td>        </tr>      </table>    </td>  </tr></table><table cellspacing="5" cellpadding="0" border="0">  <tr>    <td>      &nbsp;    </td>    <td><p>From CSenDomFragment, is called from <a class="el" href="class_c_address_book_engine.html#6f6aab8e9e405117f0c28455489d2b8a">CAddressBookEngine::HandleMessageL</a> (ParseL(aMessage)) every time when XML parser finds a new element tag. In this case we are interested in the &lt;Status&gt; and &lt;Card&gt; elements. When Status is found, we compare if attribute 'Code' is OK or not. SenXmlUtils::LocalName() only extracts out a possible XML prefix (i.e. 'ab:OK'). When local name is 'Card', we have encountered a contact-object. Then we make a new <a class="el" href="class_c_address_book_contact.html">CAddressBookContact</a> and delegate the parsing to it.<p>Example server response: &lt;ab:QueryResponse xmlns:ab="urn:nokia:test:addrbook:2004-09"&gt; &lt;ab:Status code="ab:OK"/&gt; &lt;ab:Data&gt; &lt;ab:Card&gt; &lt;ab:N&gt; &lt;ab:FAMILY&gt;Smith&lt;/ab:FAMILY&gt; &lt;ab:GIVEN&gt;John&lt;/ab:GIVEN&gt; &lt;/ab:N&gt; &lt;ab:ADR&gt; &lt;ab:EXTADR&gt;Room 123&lt;/ab:EXTADDR&gt; &lt;ab:STREET&gt;1st ST 123&lt;/ab:STREET&gt; &lt;ab:PCODE&gt;7698532&lt;/ab:PCODE&gt; &lt;/ab:ADR&gt; &lt;ab:TEL&gt;1234&lt;/ab:TEL&gt; &lt;ab:TEL type="CELL"&gt;2122345&lt;/ab:TEL&gt; &lt;/ab:Card&gt; &lt;/ab:Data&gt; &lt;/ab:QueryResponse&gt;<p><dl compact><dt><b>Parameters:</b></dt><dd>  <table border="0" cellspacing="2" cellpadding="0">    <tr><td valign="top"></td><td valign="top"><em>aNsUri</em>&nbsp;</td><td>- namespace URI </td></tr>    <tr><td valign="top"></td><td valign="top"><em>aLocalName</em>&nbsp;</td><td>- local name (in this case may be Status or Card) </td></tr>    <tr><td valign="top"></td><td valign="top"><em>aQName</em>&nbsp;</td><td>- qualified name </td></tr>    <tr><td valign="top"></td><td valign="top"><em>aAttrs</em>&nbsp;</td><td>- we are interested if value of attribute is KCode or not </td></tr>  </table></dl><p>Definition at line <a class="el" href="_address_book_engine_8cpp-source.html#l00428">428</a> of file <a class="el" href="_address_book_engine_8cpp-source.html">AddressBookEngine.cpp</a>.<p>References <a class="el" href="_address_book_engine_8h-source.html#l00290">iContacts</a>, <a class="el" href="_address_book_engine_8h-source.html#l00300">iErrorState</a>, <a class="el" href="_address_book_engine_8h-source.html#l00299">iFaultDelegate</a>, and <a class="el" href="_address_book_contact_8cpp-source.html#l00037">CAddressBookContact::NewL()</a>.<div class="fragment"><pre class="fragment"><a name="l00432"></a>00432         {<a name="l00433"></a>00433         _LIT( KStartElementL, <span class="stringliteral">"CAddressBookEngine::StartElementL() ***"</span>);<a name="l00434"></a>00434         _LIT( KNamespaceURI, <span class="stringliteral">"- namespace URI  (%S)"</span>);<a name="l00435"></a>00435         _LIT( KLocalname, <span class="stringliteral">"- localname      (%S)"</span>);<a name="l00436"></a>00436         _LIT( KQualName, <span class="stringliteral">"- qualified name (%S)"</span>);<a name="l00437"></a>00437         <a name="l00438"></a>00438         LOG( KStartElementL);<a name="l00439"></a>00439         LOG_FORMAT((KNamespaceURI, aNsUri));<a name="l00440"></a>00440         LOG_FORMAT((KLocalname, aLocalName));<a name="l00441"></a>00441         LOG_FORMAT((KQualName, aQName));<a name="l00442"></a>00442 <a name="l00443"></a>00443         <span class="keywordflow">if</span> (aLocalName == KStatus)<a name="l00444"></a>00444                 {<a name="l00445"></a>00445                 <a name="l00446"></a>00446                 <span class="keywordflow">if</span> (SenXmlUtils::LocalName(SenXmlUtils::AttrValue(aAttrs, KCode)) != KOk)<a name="l00447"></a>00447                         {<a name="l00448"></a>00448                         <a class="code" href="class_c_address_book_engine.html#b07a7dadac01652ed3d4d68d40d79a15">iErrorState</a> = ENestedError;<a name="l00449"></a>00449                         <span class="keyword">delete</span> <a class="code" href="class_c_address_book_engine.html#1bf2f8bd2d45c91d07cabdb6d4de7f9b">iFaultDelegate</a>;<a name="l00450"></a>00450                         <a class="code" href="class_c_address_book_engine.html#1bf2f8bd2d45c91d07cabdb6d4de7f9b">iFaultDelegate</a> = NULL;<a name="l00451"></a>00451                         <a class="code" href="class_c_address_book_engine.html#1bf2f8bd2d45c91d07cabdb6d4de7f9b">iFaultDelegate</a> = CSenDomFragment::NewL(aNsUri,<a name="l00452"></a>00452                                                         aLocalName, aQName, aAttrs);<a name="l00453"></a>00453                         DelegateParsingL(*<a class="code" href="class_c_address_book_engine.html#1bf2f8bd2d45c91d07cabdb6d4de7f9b">iFaultDelegate</a>);<a name="l00454"></a>00454                         <span class="keywordflow">return</span>;<a name="l00455"></a>00455                         }<a name="l00456"></a>00456                 }<a name="l00457"></a>00457         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (aLocalName == KCard)<a name="l00458"></a>00458                 {<a name="l00459"></a>00459                 <a class="code" href="class_c_address_book_engine.html#b07a7dadac01652ed3d4d68d40d79a15">iErrorState</a> = ENoError;<a name="l00460"></a>00460 <a name="l00461"></a>00461                 <a class="code" href="class_c_address_book_contact.html">CAddressBookContact</a>* delegate = <a class="code" href="class_c_address_book_contact.html#990716240ccf3341f7fdbf289ec927ad">CAddressBookContact::NewL</a>();<a name="l00462"></a>00462                 CleanupStack::PushL(delegate);<a name="l00463"></a>00463                 <a class="code" href="class_c_address_book_engine.html#941a218168fb890451d01114c235c0cc">iContacts</a>.Append(delegate);<a name="l00464"></a>00464                 DelegateParsingL(*delegate);<a name="l00465"></a>00465                 CleanupStack::Pop(delegate);<a name="l00466"></a>00466                 <span class="keywordflow">return</span>;<a name="l00467"></a>00467                 }<a name="l00468"></a>00468         }</pre></div><p>    </td>  </tr></table><a class="anchor" name="5c88d61ffcf6558d9df3aa9ec9b60a33"></a><!-- doxytag: member="CAddressBookEngine::EndElementL" ref="5c88d61ffcf6558d9df3aa9ec9b60a33" args="(const TDesC8 &amp;aNsUri, const TDesC8 &amp;aLocalName, const TDesC8 &amp;aQName)" --><p><table class="mdTable" cellpadding="2" cellspacing="0">  <tr>    <td class="mdRow">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top">void CAddressBookEngine::EndElementL           </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const TDesC8 &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>aNsUri</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>const TDesC8 &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>aLocalName</em>, </td>        </tr>        <tr>          <td class="md" nowrap align="right"></td>          <td class="md"></td>          <td class="md" nowrap>const TDesC8 &amp;&nbsp;</td>          <td class="mdname" nowrap> <em>aQName</em></td>        </tr>        <tr>

⌨️ 快捷键说明

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