Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > a65517607ef053b8c8e6c720e8c36e77 > files > 113

libsmbios-devel-2.2.26-3.fc14.i686.rpm

<!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&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;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&nbsp;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 &lt;Michael_E_Brown@dell.com&gt;</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 &quot;<a class="code" href="compat_8h.html">smbios/compat.h</a>&quot;</span>
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 <span class="preprocessor">#include &lt;string&gt;</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 &quot;<a class="code" href="types_8h.html">smbios/types.h</a>&quot;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="preprocessor">#include &quot;<a class="code" href="ICmosRW_8h.html">smbios/ICmosRW.h</a>&quot;</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="ISmbios_8h.html">smbios/ISmbios.h</a>&quot;</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 &quot;<a class="code" href="abi__prefix_8hpp.html">smbios/config/abi_prefix.hpp</a>&quot;</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 &amp; ) = 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 &amp; ) <span class="keyword">const</span> = 0;
<a name="l00085"></a>00085 
<a name="l00086"></a>00086         <span class="keyword">virtual</span> std::ostream &amp; <a class="code" href="classsmbios_1_1ITokenTable.html#a9804453404890e6fec4b3b801c8350d1">streamify</a>( std::ostream &amp; 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 &lt;b&gt; getStringLength()+1 &lt;/b&gt; 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> &amp;<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 &amp; <a class="code" href="classsmbios_1_1IToken.html#ae10b61951e58fefafd5dfa22b6167eb1">streamify</a>( std::ostream &amp; 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> &amp; ); <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> &amp; operator = (<span class="keyword">const</span> <a class="code" href="classsmbios_1_1IToken.html" title="Interface to inspect or manipulate individual tokens.">IToken</a> &amp; 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> &amp; );
<a name="l00144"></a>00144         <a class="code" href="classsmbios_1_1IProtectedToken.html">IProtectedToken</a> &amp;<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> &amp;);
<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> &amp; );
<a name="l00159"></a>00159         <a class="code" href="classsmbios_1_1ICmosToken.html">ICmosToken</a> &amp;<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> &amp;);
<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> &amp; );
<a name="l00174"></a>00174         <a class="code" href="classsmbios_1_1ISmiToken.html">ISmiToken</a> &amp;<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> &amp;);
<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 &lt; std::forward_iterator_tag, IToken &gt;
<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&#39;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>&amp; <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 -&gt; </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> &amp; <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&#39;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>&amp; <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 -&gt; </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> &amp; <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 &amp; <a class="code" href="namespacesmbios.html#a1950b32d1321b583906dd84249bc9b3f">operator &lt;&lt; </a>(std::ostream &amp; cout, <span class="keyword">const</span> ITokenTable &amp; item);
<a name="l00249"></a>00249     std::ostream &amp; <a class="code" href="namespacesmbios.html#a1950b32d1321b583906dd84249bc9b3f">operator &lt;&lt; </a>(std::ostream &amp; cout, <span class="keyword">const</span> IToken &amp; 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">&quot;&quot;</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 &quot;<a class="code" href="abi__suffix_8hpp.html">smbios/config/abi_suffix.hpp</a>&quot;</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&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>