1
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3
3
<title>Qt Cryptographic Architecture: providertest.cpp</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.4.6 -->
7
<!-- Generated by Doxygen 1.5.2 -->
10
10
<li><a href="index.html"><span>Main Page</span></a></li>
11
<li><a href="modules.html"><span>Modules</span></a></li>
11
12
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
12
13
<li><a href="annotated.html"><span>Classes</span></a></li>
13
14
<li><a href="files.html"><span>Files</span></a></li>
14
15
<li><a href="dirs.html"><span>Directories</span></a></li>
15
16
<li><a href="pages.html"><span>Related Pages</span></a></li>
16
17
<li><a href="examples.html"><span>Examples</span></a></li>
18
<h1>providertest.cpp</h1>The code below shows some simple operations on a <a class="el" href="classQCA_1_1Provider.html">QCA::Provider</a> object, including use of iterators and some member functions.<p>
20
<h1>providertest.cpp</h1>The code below shows some simple operations on a <a class="el" href="classQCA_1_1Provider.html" title="Algorithm provider.">QCA::Provider</a> object, including use of iterators and some member functions.<p>
19
21
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
20
22
<a name="l00002"></a>00002 <span class="comment"> Copyright (C) 2004 Brad Hards <bradh@frogmouth.net></span>
21
23
<a name="l00003"></a>00003 <span class="comment"></span>
48
50
<a name="l00030"></a>00030 {
49
51
<a name="l00031"></a>00031 <span class="comment">// the Initializer object sets things up, and</span>
50
52
<a name="l00032"></a>00032 <span class="comment">// also does cleanup when it goes out of scope</span>
51
<a name="l00033"></a>00033 <a name="_a175"></a><a class="code" href="classQCA_1_1Initializer.html">QCA::Initializer</a> <a name="a176"></a><a class="code" href="namespaceQCA.html#1de90bf113c54c9e4ffdc5ad784ce629">init</a>;
53
<a name="l00033"></a>00033 <a name="_a0"></a><a class="code" href="classQCA_1_1Initializer.html" title="Convenience method for initialising and cleaning up QCA.">QCA::Initializer</a> <a name="a1"></a><a class="code" href="namespaceQCA.html#4dc8db9c7ef2a40aff9c2d2760f49458" title="This is an overloaded member function, provided for convenience. It differs from...">init</a>;
52
54
<a name="l00034"></a>00034
53
<a name="l00035"></a>00035 <a class="codeRef" doxygen="qt.tag:" href="qcoreapplication.html">QCoreApplication</a> app(argc, argv);
55
<a name="l00035"></a>00035 <a name="_a2"></a><a class="codeRef" doxygen="qt.tag:" href="qcoreapplication.html">QCoreApplication</a> app(argc, argv);
54
56
<a name="l00036"></a>00036
55
57
<a name="l00037"></a>00037 <span class="comment">// get all the available providers loaded.</span>
56
58
<a name="l00038"></a>00038 <span class="comment">// you don't normally need this (because you test using isSupported())</span>
57
59
<a name="l00039"></a>00039 <span class="comment">// but this is a special case.</span>
58
<a name="l00040"></a>00040 <a name="a177"></a><a class="code" href="namespaceQCA.html#43e64da314ba5bda92b767a7229c0fb8">QCA::scanForPlugins</a>();
60
<a name="l00040"></a>00040 <a name="a3"></a><a class="code" href="namespaceQCA.html#43e64da314ba5bda92b767a7229c0fb8" title="Scan for new plugins.">QCA::scanForPlugins</a>();
59
61
<a name="l00041"></a>00041
60
62
<a name="l00042"></a>00042 <span class="comment">// this gives us all the plugin providers as a list</span>
61
<a name="l00043"></a>00043 <a class="codeRef" doxygen="qt.tag:" href="qlist.html">QCA::ProviderList</a> qcaProviders = <a name="a178"></a><a class="code" href="namespaceQCA.html#a9bd0540b136d3440ea7122d9483632e">QCA::providers</a>();
62
<a name="l00044"></a>00044 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < qcaProviders.<a name="a179"></a><a class="codeRef" doxygen="qt.tag:" href="qlist.html#b4ebb5889a8ff0272c896fe4c839ac70">size</a>(); ++i) {
63
<a name="l00043"></a>00043 <a name="_a4"></a><a class="codeRef" doxygen="qt.tag:" href="qlist.html">QCA::ProviderList</a> qcaProviders = <a name="a5"></a><a class="code" href="namespaceQCA.html#a9bd0540b136d3440ea7122d9483632e" title="Return a list of the current providers.">QCA::providers</a>();
64
<a name="l00044"></a>00044 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < qcaProviders.<a name="a6"></a><a class="codeRef" doxygen="qt.tag:" href="qlist.html#size">size</a>(); ++i) {
63
65
<a name="l00045"></a>00045 <span class="comment">// each provider has a name, which we can display</span>
64
66
<a name="l00046"></a>00046 std::cout << qcaProviders[i]->name().toLatin1().data() << <span class="stringliteral">": "</span>;
65
67
<a name="l00047"></a>00047 <span class="comment">// ... and also a list of features</span>
66
<a name="l00048"></a>00048 <a class="codeRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> capabilities = qcaProviders[i]->features();
68
<a name="l00048"></a>00048 <a name="_a7"></a><a class="codeRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> capabilities = qcaProviders[i]->features();
67
69
<a name="l00049"></a>00049 <span class="comment">// we turn the string list back into a single string,</span>
68
70
<a name="l00050"></a>00050 <span class="comment">// and display it as well</span>
69
<a name="l00051"></a>00051 std::cout << capabilities.<a name="a180"></a><a class="codeRef" doxygen="qt.tag:" href="qstringlist.html#c3122e9a3397219566f967f5df195d1b">join</a>(<span class="stringliteral">", "</span>).toLatin1().data() << std::endl;
71
<a name="l00051"></a>00051 std::cout << capabilities.<a name="a8"></a><a class="codeRef" doxygen="qt.tag:" href="qstringlist.html#join">join</a>(<span class="stringliteral">", "</span>).toLatin1().data() << std::endl;
70
72
<a name="l00052"></a>00052 }
71
73
<a name="l00053"></a>00053
72
74
<a name="l00054"></a>00054 <span class="comment">// Note that the default provider isn't included in</span>
74
76
<a name="l00056"></a>00056 std::cout << <span class="stringliteral">"default: "</span>;
75
77
<a name="l00057"></a>00057 <span class="comment">// However it is still possible to get the features</span>
76
78
<a name="l00058"></a>00058 <span class="comment">// supported by the default provider</span>
77
<a name="l00059"></a>00059 <a class="codeRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> capabilities = <a name="a181"></a><a class="code" href="namespaceQCA.html#bd41c0277362acc35b82236475d7a62b">QCA::defaultFeatures</a>();
78
<a name="l00060"></a>00060 std::cout << capabilities.<a class="codeRef" doxygen="qt.tag:" href="qstringlist.html#c3122e9a3397219566f967f5df195d1b">join</a>(<span class="stringliteral">", "</span>).toLatin1().data() << std::endl;
79
<a name="l00059"></a>00059 <a class="codeRef" doxygen="qt.tag:" href="qstringlist.html">QStringList</a> capabilities = <a name="a9"></a><a class="code" href="namespaceQCA.html#bd41c0277362acc35b82236475d7a62b" title="Generate a list of the built in features.">QCA::defaultFeatures</a>();
80
<a name="l00060"></a>00060 std::cout << capabilities.<a class="codeRef" doxygen="qt.tag:" href="qstringlist.html#join">join</a>(<span class="stringliteral">", "</span>).toLatin1().data() << std::endl;
79
81
<a name="l00061"></a>00061 <span class="keywordflow">return</span> 0;
80
82
<a name="l00062"></a>00062 }
81
83
<a name="l00063"></a>00063
82
</pre></div> <hr size="1"><address style="align: right;"><small>Generated on Fri Jul 6 12:14:04 2007 for Qt Cryptographic Architecture by
84
</pre></div> <hr size="1"><address style="text-align: right;"><small>Generated on Thu Sep 6 19:13:35 2007 for Qt Cryptographic Architecture by
83
85
<a href="http://www.doxygen.org/index.html">
84
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
86
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>