<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libsmbios_c library: /builddir/build/BUILD/libsmbios-2.2.26/src/include/smbios/IToken.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div class="header"> <div class="headertitle"> <h1>/builddir/build/BUILD/libsmbios-2.2.26/src/include/smbios/IToken.h</h1> </div> </div> <div class="contents"> <a href="IToken_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=c:</span> <a name="l00002"></a>00002 <span class="comment">/*</span> <a name="l00003"></a>00003 <span class="comment"> * Copyright (C) 2005 Dell Inc.</span> <a name="l00004"></a>00004 <span class="comment"> * by Michael Brown <Michael_E_Brown@dell.com></span> <a name="l00005"></a>00005 <span class="comment"> * Licensed under the Open Software License version 2.1</span> <a name="l00006"></a>00006 <span class="comment"> *</span> <a name="l00007"></a>00007 <span class="comment"> * Alternatively, you can redistribute it and/or modify</span> <a name="l00008"></a>00008 <span class="comment"> * it under the terms of the GNU General Public License as published</span> <a name="l00009"></a>00009 <span class="comment"> * by the Free Software Foundation; either version 2 of the License,</span> <a name="l00010"></a>00010 <span class="comment"> * or (at your option) any later version.</span> <a name="l00011"></a>00011 <span class="comment"></span> <a name="l00012"></a>00012 <span class="comment"> * This program is distributed in the hope that it will be useful, but</span> <a name="l00013"></a>00013 <span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span> <a name="l00014"></a>00014 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span> <a name="l00015"></a>00015 <span class="comment"> * See the GNU General Public License for more details.</span> <a name="l00016"></a>00016 <span class="comment"> */</span> <a name="l00017"></a>00017 <a name="l00018"></a>00018 <a name="l00019"></a>00019 <span class="preprocessor">#ifndef TOKEN_H</span> <a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define TOKEN_H</span> <a name="l00021"></a>00021 <span class="preprocessor"></span> <a name="l00022"></a>00022 <span class="comment">// compat header should always be first header</span> <a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="compat_8h.html">smbios/compat.h</a>"</span> <a name="l00024"></a>00024 <a name="l00025"></a>00025 <span class="preprocessor">#include <string></span> <a name="l00026"></a>00026 <a name="l00027"></a>00027 <span class="comment">// types.h should be first user-defined header.</span> <a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="types_8h.html">smbios/types.h</a>"</span> <a name="l00029"></a>00029 <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="ICmosRW_8h.html">smbios/ICmosRW.h</a>"</span> <a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="ISmbios_8h.html">smbios/ISmbios.h</a>"</span> <a name="l00032"></a>00032 <a name="l00033"></a>00033 <span class="comment">// abi_prefix should be last header included before declarations</span> <a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="abi__prefix_8hpp.html">smbios/config/abi_prefix.hpp</a>"</span> <a name="l00035"></a>00035 <a name="l00036"></a>00036 <span class="keyword">namespace </span>smbios <a name="l00037"></a>00037 { <a name="l00038"></a>00038 <span class="comment">// Exceptions</span> <a name="l00039"></a>00039 <a class="code" href="namespacesmbios.html#a944c7ee4c4eb73685a33ffbb9db8796c">DECLARE_EXCEPTION</a>( TokenException ); <a name="l00040"></a>00040 <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( InvalidTokenTableMode, smbios, TokenException ); <a name="l00041"></a>00041 <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( InvalidAccessMode, smbios, TokenException ); <a name="l00042"></a>00042 <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( DerefNullPointer, smbios, TokenException ); <a name="l00043"></a>00043 <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( ParameterError, smbios, TokenException ); <a name="l00044"></a>00044 <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( InvalidChecksum, smbios, TokenException ); <a name="l00045"></a>00045 <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( NeedAuthentication, smbios, TokenException ); <a name="l00046"></a>00046 <a name="l00047"></a>00047 <span class="comment">// forward declarations</span> <a name="l00048"></a>00048 <span class="keyword">class </span>ITokenTable; <a name="l00049"></a>00049 <span class="keyword">class </span>TokenTableIterator; <a name="l00050"></a>00050 <span class="keyword">class </span>ConstTokenTableIterator; <a name="l00051"></a>00051 <a name="l00052"></a><a class="code" href="classsmbios_1_1TokenTableFactory.html">00052</a> <span class="keyword">class </span><a class="code" href="classsmbios_1_1TokenTableFactory.html">TokenTableFactory</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> factory::IFactory <a name="l00053"></a>00053 { <a name="l00054"></a>00054 <span class="keyword">public</span>: <a name="l00055"></a>00055 <span class="keyword">static</span> <a class="code" href="classsmbios_1_1TokenTableFactory.html">TokenTableFactory</a> *<a class="code" href="classsmbios_1_1TokenTableFactory.html#a54a9bffbc705d56ca4e6ac2538fe4250">getFactory</a>(); <a name="l00056"></a>00056 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1TokenTableFactory.html#a67cdeefb6b373e45756706e5528a10e7">~TokenTableFactory</a>() <span class="keywordflow">throw</span>(); <a name="l00057"></a>00057 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ITokenTable.html" title="Table interface to obtain individual Tokens.">ITokenTable</a> *<a class="code" href="classsmbios_1_1TokenTableFactory.html#a27e74f269d4694f67d5c7ac70e142b78">getSingleton</a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">smbios::ISmbiosTable</a> *table = 0) = 0; <a name="l00058"></a>00058 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ITokenTable.html" title="Table interface to obtain individual Tokens.">ITokenTable</a> *<a class="code" href="classsmbios_1_1TokenTableFactory.html#a54151a0332d1e219e140d8fc20af8021">makeNew</a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">smbios::ISmbiosTable</a> *table) = 0; <a name="l00059"></a>00059 <span class="keyword">protected</span>: <a name="l00060"></a>00060 <a class="code" href="classsmbios_1_1TokenTableFactory.html#a22c279a9256f22b08dfd8fa15d08f56a">TokenTableFactory</a>(); <a name="l00061"></a>00061 }; <a name="l00062"></a>00062 <a name="l00063"></a>00063 <a name="l00065"></a><a class="code" href="classsmbios_1_1ITokenTable.html">00065</a> <span class="keyword">class </span><a class="code" href="classsmbios_1_1ITokenTable.html" title="Table interface to obtain individual Tokens.">ITokenTable</a> <a name="l00066"></a>00066 { <a name="l00067"></a>00067 <span class="keyword">public</span>: <a name="l00068"></a><a class="code" href="classsmbios_1_1ITokenTable.html#ac7f826223e8d63a81fa7c19b04ea3d7c">00068</a> <span class="keyword">typedef</span> <a class="code" href="classsmbios_1_1TokenTableIterator.html" title="Iterator for TokenTable objects.">TokenTableIterator</a> <a class="code" href="classsmbios_1_1TokenTableIterator.html" title="Iterator for TokenTable objects.">iterator</a>; <a name="l00069"></a><a class="code" href="classsmbios_1_1ITokenTable.html#a8e61ed3c9007e4af8ef651e6f2286732">00069</a> <span class="keyword">typedef</span> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html" title="Iterator for const TokenTable objects.">ConstTokenTableIterator</a> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html" title="Iterator for const TokenTable objects.">const_iterator</a>; <a name="l00070"></a>00070 <a name="l00071"></a>00071 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ITokenTable.html#a1c0cdfcac141b7786177c65af89e2121">~ITokenTable</a>(); <a name="l00072"></a>00072 <a name="l00073"></a>00073 <span class="comment">// ITERATORS</span> <a name="l00074"></a>00074 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1TokenTableIterator.html" title="Iterator for TokenTable objects.">iterator</a> <a class="code" href="classsmbios_1_1ITokenTable.html#ac9c046e1f2e15be1545a3f14485b4190">begin</a> () = 0; <a name="l00075"></a>00075 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html" title="Iterator for const TokenTable objects.">const_iterator</a> <a class="code" href="classsmbios_1_1ITokenTable.html#ac9c046e1f2e15be1545a3f14485b4190">begin</a> () <span class="keyword">const</span> = 0; <a name="l00076"></a>00076 <a name="l00077"></a>00077 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1TokenTableIterator.html" title="Iterator for TokenTable objects.">iterator</a> <a class="code" href="classsmbios_1_1ITokenTable.html#a3f28dc124900313cad611f204ae7f02d">end</a> () = 0; <a name="l00078"></a>00078 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html" title="Iterator for const TokenTable objects.">const_iterator</a> <a class="code" href="classsmbios_1_1ITokenTable.html#a3f28dc124900313cad611f204ae7f02d">end</a> () <span class="keyword">const</span> = 0; <a name="l00079"></a>00079 <a name="l00080"></a>00080 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1TokenTableIterator.html" title="Iterator for TokenTable objects.">iterator</a> <a class="code" href="classsmbios_1_1ITokenTable.html#ae7b9ec9905b766f9325ac902ac45b637">operator[]</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> ) = 0; <a name="l00081"></a>00081 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html" title="Iterator for const TokenTable objects.">const_iterator</a> <a class="code" href="classsmbios_1_1ITokenTable.html#ae7b9ec9905b766f9325ac902ac45b637">operator[]</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> ) <span class="keyword">const</span> = 0; <a name="l00082"></a>00082 <a name="l00083"></a>00083 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1TokenTableIterator.html" title="Iterator for TokenTable objects.">iterator</a> <a class="code" href="classsmbios_1_1ITokenTable.html#ae7b9ec9905b766f9325ac902ac45b637">operator[]</a>( <span class="keyword">const</span> std::string & ) = 0; <a name="l00084"></a>00084 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html" title="Iterator for const TokenTable objects.">const_iterator</a> <a class="code" href="classsmbios_1_1ITokenTable.html#ae7b9ec9905b766f9325ac902ac45b637">operator[]</a>( <span class="keyword">const</span> std::string & ) <span class="keyword">const</span> = 0; <a name="l00085"></a>00085 <a name="l00086"></a>00086 <span class="keyword">virtual</span> std::ostream & <a class="code" href="classsmbios_1_1ITokenTable.html#a9804453404890e6fec4b3b801c8350d1">streamify</a>( std::ostream & cout ) <span class="keyword">const</span> = 0; <a name="l00087"></a>00087 <a name="l00088"></a>00088 <span class="keyword">protected</span>: <a name="l00089"></a>00089 <span class="comment">// No-arg constructor not legal for this class for outside parties</span> <a name="l00090"></a>00090 <a class="code" href="classsmbios_1_1ITokenTable.html#a89640d14886a2bac8d62961705d73d4b">ITokenTable</a>(); <a name="l00091"></a>00091 }; <a name="l00092"></a>00092 <a name="l00093"></a>00093 <a name="l00095"></a><a class="code" href="classsmbios_1_1IToken.html">00095</a> <span class="keyword">class </span><a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">IToken</a> <a name="l00096"></a>00096 { <a name="l00097"></a>00097 <span class="keyword">public</span>: <a name="l00098"></a>00098 <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1IToken.html#a9975c19e986203cd604cc299388d5c63">~IToken</a>(); <a name="l00099"></a>00099 <a name="l00100"></a>00100 <span class="keyword">virtual</span> std::string <a class="code" href="classsmbios_1_1IToken.html#a8a6109ecd18914a93c93281dfa91b580">getTokenClass</a>() <span class="keyword">const</span> = 0; <a name="l00101"></a>00101 <a name="l00103"></a>00103 <span class="keyword">virtual</span> <a class="code" href="types_8h.html#a10e94b422ef0c20dcdec20d31a1f5049">u32</a> <a class="code" href="classsmbios_1_1IToken.html#a1bbe34b3d9f859435f8d69280a7b1d4a" title="Returns the Token Type, per Dell SMBIOS Spec.">getType</a>() <span class="keyword">const</span> = 0; <a name="l00104"></a>00104 <a name="l00106"></a>00106 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classsmbios_1_1IToken.html#a5a439fc1c5754d38c1fbd2afb73093f5" title="Returns true if bitfield-type token is set.">isActive</a>() <span class="keyword">const</span> = 0; <a name="l00108"></a>00108 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1IToken.html#ae143344e1245a0751242c4584865ee59" title="Sets the bitmask for bitfield-type tokens.">activate</a>() <span class="keyword">const</span> = 0; <a name="l00110"></a>00110 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classsmbios_1_1IToken.html#aab0dbd7bad8b4e24caf2cc4a6201b11c" title="Returns true for string-type tokens.">isString</a>() <span class="keyword">const</span> = 0; <a name="l00112"></a>00112 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classsmbios_1_1IToken.html#a8d296d5104d85be362cbf8ab9bf392b7" title="Returns true for bool-type tokens.">isBool</a>() <span class="keyword">const</span> = 0; <a name="l00114"></a>00114 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classsmbios_1_1IToken.html#a6dbbdb966974d472a282e0dc80f8e282" title="Returns length for string-type tokens.">getStringLength</a>() <span class="keyword">const</span> = 0; <a name="l00116"></a>00116 <span class="comment">// \warning byteArray must be at least <b> getStringLength()+1 </b> bytes or NULL!</span> <a name="l00121"></a>00121 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classsmbios_1_1IToken.html#a59c29ccc4e21bc467bdcef1526aa89cf" title="returns std:string and raw value in first parameter.">getString</a>( <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> *byteArray = 0, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size = 0 ) <span class="keyword">const</span> = 0; <a name="l00122"></a>00122 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1IToken.html#af398672775574601e78f07fdd77b3948">setString</a>( <span class="keyword">const</span> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> *byteArray, <span class="keywordtype">size_t</span> size ) <span class="keyword">const</span> = 0; <a name="l00123"></a>00123 <a name="l00124"></a>00124 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">ISmbiosItem</a> &<a class="code" href="classsmbios_1_1IToken.html#ae2ce73f8bba7c99a8254d094cb922eaf">getItemRef</a>() <span class="keyword">const</span> = 0; <span class="comment">// use judiciously!</span> <a name="l00125"></a>00125 <a name="l00126"></a>00126 <span class="keyword">virtual</span> std::ostream & <a class="code" href="classsmbios_1_1IToken.html#ae10b61951e58fefafd5dfa22b6167eb1">streamify</a>( std::ostream & cout ) <span class="keyword">const</span> = 0; <a name="l00127"></a>00127 <span class="keyword">protected</span>: <a name="l00128"></a>00128 <a class="code" href="classsmbios_1_1IToken.html#a04d7770ec06b1d71b392f79a31c648be">IToken</a>() ; <a name="l00129"></a>00129 <a name="l00130"></a>00130 <span class="keyword">private</span>: <a name="l00131"></a>00131 <a class="code" href="classsmbios_1_1IToken.html#a04d7770ec06b1d71b392f79a31c648be">IToken</a>( <span class="keyword">const</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">IToken</a> & ); <span class="comment">//no copying</span> <a name="l00132"></a>00132 <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">IToken</a> & operator = (<span class="keyword">const</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">IToken</a> & source);<span class="comment">//no assignment</span> <a name="l00133"></a>00133 }; <a name="l00134"></a>00134 <a name="l00135"></a><a class="code" href="classsmbios_1_1IProtectedToken.html">00135</a> <span class="keyword">class </span><a class="code" href="classsmbios_1_1IProtectedToken.html">IProtectedToken</a> <a name="l00136"></a>00136 { <a name="l00137"></a>00137 <span class="keyword">public</span>: <a name="l00138"></a><a class="code" href="classsmbios_1_1IProtectedToken.html#ab5fe1ebcc2afa99a214b2efcc29a5b88">00138</a> <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1IProtectedToken.html#ab5fe1ebcc2afa99a214b2efcc29a5b88">~IProtectedToken</a>() throw() {}; <a name="l00139"></a>00139 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classsmbios_1_1IProtectedToken.html#a7ff145b85a4569c6c8627447b75015a9">tryPassword</a>(std::string pw) <span class="keyword">const</span> = 0; <a name="l00140"></a>00140 <span class="keyword">virtual</span> <a class="code" href="types_8h.html#a10e94b422ef0c20dcdec20d31a1f5049">u32</a> <a class="code" href="classsmbios_1_1IProtectedToken.html#a9a51c6a71a0ed351f3edc514fa6a79cb">getValueFormat</a>() <span class="keyword">const</span> = 0; <a name="l00141"></a>00141 <span class="keyword">protected</span>: <a name="l00142"></a>00142 <a class="code" href="classsmbios_1_1IProtectedToken.html#a9a8111b07baf489345be3fc5929d07dd">IProtectedToken</a>(); <a name="l00143"></a>00143 <a class="code" href="classsmbios_1_1IProtectedToken.html#a9a8111b07baf489345be3fc5929d07dd">IProtectedToken</a>( <span class="keyword">const</span> <a class="code" href="classsmbios_1_1IProtectedToken.html">IProtectedToken</a> & ); <a name="l00144"></a>00144 <a class="code" href="classsmbios_1_1IProtectedToken.html">IProtectedToken</a> &<a class="code" href="classsmbios_1_1IProtectedToken.html#a50a8f1bd3f57f50052a58b7a2967eca4">operator = </a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1IProtectedToken.html">IProtectedToken</a> &); <a name="l00145"></a>00145 }; <a name="l00146"></a>00146 <a name="l00147"></a><a class="code" href="classsmbios_1_1ICmosToken.html">00147</a> <span class="keyword">class </span><a class="code" href="classsmbios_1_1ICmosToken.html">ICmosToken</a> <a name="l00148"></a>00148 { <a name="l00149"></a>00149 <span class="keyword">public</span>: <a name="l00151"></a>00151 <span class="comment">// should be used judiciously, as this circumvents object layering.</span> <a name="l00152"></a>00152 <span class="comment">// The main purpose for this is to implement special-case code</span> <a name="l00153"></a>00153 <span class="comment">// that needs to access raw cmos.</span> <a name="l00154"></a>00154 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1ICmosToken.html#a82546a1b87bfcbaddc6bd304889d9a22" title="returns details about CMOS index/data ports and cmos location.">getCMOSDetails</a>( <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> *indexPort, <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> *dataPort, <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> *location ) <span class="keyword">const</span> = 0; <a name="l00155"></a><a class="code" href="classsmbios_1_1ICmosToken.html#a68fd62e6f64ccc2eaf6ba40c392e56e2">00155</a> <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ICmosToken.html#a68fd62e6f64ccc2eaf6ba40c392e56e2">~ICmosToken</a>() throw() {}; <a name="l00156"></a>00156 <span class="keyword">protected</span>: <a name="l00157"></a>00157 <a class="code" href="classsmbios_1_1ICmosToken.html#aabdd503ca0f44789be884cdaa8c16c48">ICmosToken</a>(); <a name="l00158"></a>00158 <a class="code" href="classsmbios_1_1ICmosToken.html#aabdd503ca0f44789be884cdaa8c16c48">ICmosToken</a>( <span class="keyword">const</span> <a class="code" href="classsmbios_1_1ICmosToken.html">ICmosToken</a> & ); <a name="l00159"></a>00159 <a class="code" href="classsmbios_1_1ICmosToken.html">ICmosToken</a> &<a class="code" href="classsmbios_1_1ICmosToken.html#af44d4201625f97d5182d860bdf9d2a84">operator = </a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ICmosToken.html">ICmosToken</a> &); <a name="l00160"></a>00160 }; <a name="l00161"></a>00161 <a name="l00162"></a><a class="code" href="classsmbios_1_1ISmiToken.html">00162</a> <span class="keyword">class </span><a class="code" href="classsmbios_1_1ISmiToken.html">ISmiToken</a> <a name="l00163"></a>00163 { <a name="l00164"></a>00164 <span class="keyword">public</span>: <a name="l00166"></a>00166 <span class="comment">// should be used judiciously, as this circumvents object layering.</span> <a name="l00167"></a>00167 <span class="comment">// The main purpose for this is to implement special-case code</span> <a name="l00168"></a>00168 <span class="comment">// that needs to access raw smi.</span> <a name="l00169"></a>00169 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1ISmiToken.html#afcc8f7a976632fa19abc252e2ebfcf84" title="returns details about Smi location and value">getSmiDetails</a>( <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> *cmdIOAddress, <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> *cmdIOCode, <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> *location ) <span class="keyword">const</span> = 0; <a name="l00170"></a><a class="code" href="classsmbios_1_1ISmiToken.html#a4e6e06406072fd9f8837a83bd9dedfcc">00170</a> <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ISmiToken.html#a4e6e06406072fd9f8837a83bd9dedfcc">~ISmiToken</a>() throw() {}; <a name="l00171"></a>00171 <span class="keyword">protected</span>: <a name="l00172"></a>00172 <a class="code" href="classsmbios_1_1ISmiToken.html#ac9d03cec1e76f44b8265c82b7c3f6757">ISmiToken</a>(); <a name="l00173"></a>00173 <a class="code" href="classsmbios_1_1ISmiToken.html#ac9d03cec1e76f44b8265c82b7c3f6757">ISmiToken</a>( <span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmiToken.html">ISmiToken</a> & ); <a name="l00174"></a>00174 <a class="code" href="classsmbios_1_1ISmiToken.html">ISmiToken</a> &<a class="code" href="classsmbios_1_1ISmiToken.html#ab7e48917bb72d49a2685e05eed0fa8d0">operator = </a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmiToken.html">ISmiToken</a> &); <a name="l00175"></a>00175 }; <a name="l00176"></a>00176 <a name="l00177"></a>00177 <a name="l00179"></a>00179 <a name="l00181"></a><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html">00181</a> <span class="keyword">class </span><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html" title="Base class for the TokenTableIterator subclassess.">TokenTableIteratorBase</a> <a name="l00182"></a>00182 : <span class="keyword">public</span> std::iterator < std::forward_iterator_tag, IToken > <a name="l00183"></a>00183 { <a name="l00184"></a>00184 <span class="keyword">public</span>: <a name="l00185"></a><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a8aa9d2229235ec29262d57c1600c94c6">00185</a> <span class="keyword">typedef</span> std::forward_iterator_tag iterator_category; <a name="l00186"></a><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#aa3089b568cce5fa39dbd60f0546c22de">00186</a> <span class="keyword">typedef</span> std::ptrdiff_t difference_type; <a name="l00187"></a>00187 <a name="l00188"></a><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#ae54da8718ea79589e18e4cab5ce651fd">00188</a> <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#ae54da8718ea79589e18e4cab5ce651fd">~TokenTableIteratorBase</a>() throw() {}; <a name="l00189"></a>00189 <span class="keyword">explicit</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#aec190783921a9c236b4cfc7559f49c09">TokenTableIteratorBase</a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ITokenTable.html" title="Table interface to obtain individual Tokens.">ITokenTable</a> *initialTable, <span class="keywordtype">int</span> typeToMatch); <a name="l00190"></a><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a51ef5b0c185180876f542b9dcd196544">00190</a> <span class="keywordtype">bool</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a51ef5b0c185180876f542b9dcd196544">operator == </a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html" title="Base class for the TokenTableIterator subclassess.">TokenTableIteratorBase</a> other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a2d2d81ec483858f472d2168ed13c0511">current</a> == other.<a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a2d2d81ec483858f472d2168ed13c0511">current</a>; }; <a name="l00191"></a><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a652fa2272d3715653e37d863e144f666">00191</a> <span class="keywordtype">bool</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a652fa2272d3715653e37d863e144f666">operator != </a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html" title="Base class for the TokenTableIterator subclassess.">TokenTableIteratorBase</a> other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a2d2d81ec483858f472d2168ed13c0511">current</a> != other.<a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a2d2d81ec483858f472d2168ed13c0511">current</a>; }; <a name="l00192"></a>00192 <span class="keyword">const</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">IToken</a> * <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a93f725dbbc52167f0a4a14151f46048d">dereference</a> () <span class="keyword">const</span>; <a name="l00193"></a>00193 <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">IToken</a> * <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a93f725dbbc52167f0a4a14151f46048d">dereference</a> (); <a name="l00194"></a>00194 <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a5e71a4cf22b810a4c38f21ac5eb52eb6">incrementIterator</a>(); <a name="l00195"></a>00195 <a name="l00196"></a>00196 <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#af2cbda94275302d9358f201d61d61ef1">reset</a>(); <a name="l00197"></a>00197 <span class="keywordtype">bool</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a7a94dadfbdf216d98af51b8f162ea844">eof</a>(); <a name="l00198"></a>00198 <a name="l00199"></a>00199 <span class="keyword">protected</span>: <a name="l00200"></a><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#aef99915e623a3357c6060fdf596bdd63">00200</a> <span class="keywordtype">int</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#aef99915e623a3357c6060fdf596bdd63">matchType</a>; <a name="l00201"></a><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#ad85ba29cd3665174d2e4509afa42aa4e">00201</a> <span class="keyword">const</span> <a class="code" href="classsmbios_1_1ITokenTable.html" title="Table interface to obtain individual Tokens.">ITokenTable</a> *<a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#ad85ba29cd3665174d2e4509afa42aa4e">table</a>; <a name="l00202"></a><a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a2d2d81ec483858f472d2168ed13c0511">00202</a> <span class="keywordtype">int</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html#a2d2d81ec483858f472d2168ed13c0511">current</a>; <a name="l00203"></a>00203 }; <a name="l00204"></a>00204 <a name="l00206"></a>00206 <a name="l00208"></a><a class="code" href="classsmbios_1_1TokenTableIterator.html">00208</a> <span class="keyword">class </span><a class="code" href="classsmbios_1_1TokenTableIterator.html" title="Iterator for TokenTable objects.">TokenTableIterator</a> <a name="l00209"></a>00209 :<span class="keyword">public</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html" title="Base class for the TokenTableIterator subclassess.">TokenTableIteratorBase</a> <a name="l00210"></a>00210 { <a name="l00211"></a>00211 <span class="keyword">public</span>: <a name="l00212"></a>00212 <span class="comment">// Make sure you define these, otherwise you can't use</span> <a name="l00213"></a>00213 <span class="comment">// iterators in stl algorithms</span> <a name="l00214"></a><a class="code" href="classsmbios_1_1TokenTableIterator.html#a58f117259690d74c22aee978e2323b69">00214</a> <span class="keyword">typedef</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">IToken</a> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">value_type</a>; <a name="l00215"></a><a class="code" href="classsmbios_1_1TokenTableIterator.html#ac278fcf8f74a053020bd91916d4bda77">00215</a> <span class="keyword">typedef</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">value_type</a>& <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">reference</a>; <a name="l00216"></a><a class="code" href="classsmbios_1_1TokenTableIterator.html#a6bb15ae2b046ab23da5696188fcce917">00216</a> <span class="keyword">typedef</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">value_type</a>* <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">pointer</a>; <a name="l00217"></a>00217 <a name="l00218"></a><a class="code" href="classsmbios_1_1TokenTableIterator.html#a8a3b09569202500f4ae9927b7c613663">00218</a> <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1TokenTableIterator.html#a8a3b09569202500f4ae9927b7c613663">~TokenTableIterator</a>() throw() {}; <a name="l00219"></a>00219 <span class="keyword">explicit</span> <a class="code" href="classsmbios_1_1TokenTableIterator.html#acac4eb50edea335a6ef7d78217e347ca">TokenTableIterator</a> (<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ITokenTable.html" title="Table interface to obtain individual Tokens.">ITokenTable</a> *initialTable = 0, <span class="keywordtype">int</span> typeToMatch = -1 ); <a name="l00220"></a>00220 <a class="code" href="classsmbios_1_1TokenTableIterator.html#ac278fcf8f74a053020bd91916d4bda77">reference</a> <a class="code" href="classsmbios_1_1TokenTableIterator.html#a1a73bc47a306818043658bd0131075ea">operator * </a>() <span class="keyword">const</span>; <a name="l00221"></a>00221 <a class="code" href="classsmbios_1_1TokenTableIterator.html#a6bb15ae2b046ab23da5696188fcce917">pointer</a> <a class="code" href="classsmbios_1_1TokenTableIterator.html#a300ec47c79d7b5863a51b6203456f9b9">operator -> </a>() <span class="keyword">const</span>; <a name="l00222"></a>00222 <a class="code" href="classsmbios_1_1TokenTableIterator.html" title="Iterator for TokenTable objects.">TokenTableIterator</a> & <a class="code" href="classsmbios_1_1TokenTableIterator.html#a8596fd28ce0dba04eb89169c3ab33545">operator ++ </a>(); <span class="comment">// ++Prefix</span> <a name="l00223"></a>00223 <span class="keyword">const</span> <a class="code" href="classsmbios_1_1TokenTableIterator.html" title="Iterator for TokenTable objects.">TokenTableIterator</a> <a class="code" href="classsmbios_1_1TokenTableIterator.html#a8596fd28ce0dba04eb89169c3ab33545">operator ++ </a>(<span class="keywordtype">int</span>); <span class="comment">//Postfix++</span> <a name="l00224"></a>00224 }; <a name="l00225"></a>00225 <a name="l00227"></a>00227 <span class="comment">/***</span> <a name="l00228"></a>00228 <span class="comment"> */</span> <a name="l00229"></a><a class="code" href="classsmbios_1_1ConstTokenTableIterator.html">00229</a> <span class="keyword">class </span><a class="code" href="classsmbios_1_1ConstTokenTableIterator.html" title="Iterator for const TokenTable objects.">ConstTokenTableIterator</a> <a name="l00230"></a>00230 :<span class="keyword">public</span> <a class="code" href="classsmbios_1_1TokenTableIteratorBase.html" title="Base class for the TokenTableIterator subclassess.">TokenTableIteratorBase</a> <a name="l00231"></a>00231 { <a name="l00232"></a>00232 <span class="keyword">public</span>: <a name="l00233"></a>00233 <span class="comment">// Make sure you define these, otherwise you can't use</span> <a name="l00234"></a>00234 <span class="comment">// iterators in stl algorithms</span> <a name="l00235"></a><a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#ad9c6b84d75e6338a229f6a293e0912b4">00235</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">IToken</a> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">value_type</a>; <a name="l00236"></a><a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#a4ae383fd2befd9f650e77532a42ab46a">00236</a> <span class="keyword">typedef</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">value_type</a>& <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">reference</a>; <a name="l00237"></a><a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#ac2895f33a8ee09a27b01e11053def437">00237</a> <span class="keyword">typedef</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">value_type</a>* <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">pointer</a>; <a name="l00238"></a>00238 <a name="l00239"></a><a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#a6e3b7ba2166e5172e0c40a0b55d91f58">00239</a> <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#a6e3b7ba2166e5172e0c40a0b55d91f58">~ConstTokenTableIterator</a>() throw() {}; <a name="l00240"></a>00240 <span class="keyword">explicit</span> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#aff978d92f6c65b100cf27e629e13361f">ConstTokenTableIterator</a> (<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ITokenTable.html" title="Table interface to obtain individual Tokens.">ITokenTable</a> * initialTable = 0, <span class="keywordtype">int</span> typeToMatch = -1 ); <a name="l00241"></a>00241 <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#a4ae383fd2befd9f650e77532a42ab46a">reference</a> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#af0fe75d5e58259f59209f628b409616a">operator * </a>() <span class="keyword">const</span>; <a name="l00242"></a>00242 <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#ac2895f33a8ee09a27b01e11053def437">pointer</a> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#a8769ed4b891e05cae889149ef51132cb">operator -> </a>() <span class="keyword">const</span>; <a name="l00243"></a>00243 <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html" title="Iterator for const TokenTable objects.">ConstTokenTableIterator</a> & <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#ac51efe9ff807303e4fcb4ab994ef0307">operator ++ </a>(); <span class="comment">// ++Prefix</span> <a name="l00244"></a>00244 <span class="keyword">const</span> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html" title="Iterator for const TokenTable objects.">ConstTokenTableIterator</a> <a class="code" href="classsmbios_1_1ConstTokenTableIterator.html#ac51efe9ff807303e4fcb4ab994ef0307">operator ++ </a>(<span class="keywordtype">int</span>); <span class="comment">//Postfix++</span> <a name="l00245"></a>00245 }; <a name="l00246"></a>00246 <a name="l00247"></a>00247 <a name="l00248"></a>00248 std::ostream & <a class="code" href="namespacesmbios.html#a1950b32d1321b583906dd84249bc9b3f">operator << </a>(std::ostream & cout, <span class="keyword">const</span> ITokenTable & item); <a name="l00249"></a>00249 std::ostream & <a class="code" href="namespacesmbios.html#a1950b32d1321b583906dd84249bc9b3f">operator << </a>(std::ostream & cout, <span class="keyword">const</span> IToken & item); <a name="l00250"></a>00250 <a name="l00251"></a>00251 <span class="comment">// helper functions</span> <a name="l00252"></a>00252 <a name="l00253"></a>00253 <span class="keywordtype">bool</span> <a class="code" href="namespacesmbios.html#a2cfa0b61515807e01511b8bc0af00ecb">isTokenActive</a>(<span class="keywordtype">int</span> tokenNum); <a name="l00254"></a>00254 <span class="keywordtype">void</span> <a class="code" href="namespacesmbios.html#a0308b92d0d31b6f8bd8fe4330f1cd004">activateToken</a>(<span class="keywordtype">int</span> tokenNum, std::string password = <span class="stringliteral">""</span>); <a name="l00255"></a>00255 } <a name="l00256"></a>00256 <a name="l00257"></a>00257 <span class="comment">// always should be last thing in header file</span> <a name="l00258"></a>00258 <span class="preprocessor">#include "<a class="code" href="abi__suffix_8hpp.html">smbios/config/abi_suffix.hpp</a>"</span> <a name="l00259"></a>00259 <a name="l00260"></a>00260 <span class="preprocessor">#endif </span><span class="comment">/* TOKEN_H */</span> </pre></div></div> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Oct 5 2010 for libsmbios_c library by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address> </body> </html>