Sophie

Sophie

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

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/ISmbios.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/ISmbios.h</h1>  </div>
</div>
<div class="contents">
<a href="ISmbios_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 SMBIOSINTERFACE_H</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define SMBIOSINTERFACE_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;cstdlib&gt;</span>              <span class="comment">// Provides size_t and NULL</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &lt;iostream&gt;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &lt;map&gt;</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include &lt;memory&gt;</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="comment">// types.h should be first user-defined header.</span>
<a name="l00031"></a>00031 <span class="preprocessor">#include &quot;<a class="code" href="types_8h.html">smbios/types.h</a>&quot;</span>
<a name="l00032"></a>00032 <span class="preprocessor">#include &quot;<a class="code" href="IFactory_8h.html">smbios/IFactory.h</a>&quot;</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include &quot;<a class="code" href="IException_8h.html">smbios/IException.h</a>&quot;</span>
<a name="l00034"></a>00034 <span class="preprocessor">#include &quot;<a class="code" href="SmbiosLowLevel_8h.html">smbios/SmbiosLowLevel.h</a>&quot;</span>
<a name="l00035"></a>00035 
<a name="l00036"></a>00036 <span class="comment">// abi_prefix should be last header included before declarations</span>
<a name="l00037"></a>00037 <span class="preprocessor">#include &quot;<a class="code" href="abi__prefix_8hpp.html">smbios/config/abi_prefix.hpp</a>&quot;</span>
<a name="l00038"></a>00038 
<a name="l00039"></a>00039 <span class="keyword">namespace </span>smbios
<a name="l00040"></a>00040 {
<a name="l00041"></a>00041     <span class="comment">// Exception Classes</span>
<a name="l00042"></a>00042     <a class="code" href="namespacesmbios.html#a944c7ee4c4eb73685a33ffbb9db8796c">DECLARE_EXCEPTION</a>( SmbiosException );
<a name="l00043"></a>00043     <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( ParameterException, smbios, SmbiosException );
<a name="l00044"></a>00044     <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( ParseException, smbios, SmbiosException );
<a name="l00045"></a>00045     <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( StringUnavailable, smbios, SmbiosException );
<a name="l00046"></a>00046     <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( DataOutOfBounds, smbios, SmbiosException );
<a name="l00047"></a>00047     <a class="code" href="namespacesmbios.html#a86c3d9668fa0823ee21c79a83c23a037">DECLARE_EXCEPTION_EX</a>( ItemNotFound, smbios, SmbiosException );
<a name="l00048"></a>00048 
<a name="l00049"></a>00049 
<a name="l00050"></a>00050     <span class="comment">//forward declarations... defined &#39;for real&#39; below...</span>
<a name="l00051"></a>00051     <span class="keyword">class </span>ISmbiosTable;
<a name="l00052"></a>00052     <span class="keyword">class </span>ISmbiosItem;
<a name="l00053"></a>00053     <span class="keyword">class </span>SmbiosTableIterator;
<a name="l00054"></a>00054     <span class="keyword">class </span>ConstSmbiosTableIterator;
<a name="l00055"></a>00055 
<a name="l00057"></a>00057 
<a name="l00071"></a><a class="code" href="classsmbios_1_1SmbiosFactory.html">00071</a>     <span class="keyword">class </span><a class="code" href="classsmbios_1_1SmbiosFactory.html" title="AbstractFactory that produces ISmbiosTable objects.">SmbiosFactory</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> factory::IFactory
<a name="l00072"></a>00072     {
<a name="l00073"></a>00073     <span class="keyword">public</span>:
<a name="l00075"></a>00075 
<a name="l00085"></a>00085         <span class="keyword">static</span> <a class="code" href="classsmbios_1_1SmbiosFactory.html" title="AbstractFactory that produces ISmbiosTable objects.">SmbiosFactory</a> *<a class="code" href="classsmbios_1_1SmbiosFactory.html#acd0d5087eb627564844fb555a2e4ae91" title="Create a factory object that you can use to create ISmbiosTable objects.">getFactory</a>();
<a name="l00086"></a>00086         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1SmbiosFactory.html#a8e78972be735b63e6576b245dc6915f3">~SmbiosFactory</a>() <span class="keywordflow">throw</span>();
<a name="l00087"></a>00087 
<a name="l00089"></a>00089 
<a name="l00095"></a>00095         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> *<a class="code" href="classsmbios_1_1SmbiosFactory.html#ac5421106d2b8d21793e8b8191803de8e" title="Recommended way to get an ISmbiosTable object.">getSingleton</a>() = 0;
<a name="l00096"></a>00096 
<a name="l00098"></a>00098 
<a name="l00107"></a>00107         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> *<a class="code" href="classsmbios_1_1SmbiosFactory.html#aa50e9230823771f49f97f415d464ba49" title="Create a new ISmbiosTable object that the caller must delete. (NOT RECOMMENDED).">makeNew</a>() = 0;
<a name="l00108"></a>00108     <span class="keyword">protected</span>:
<a name="l00110"></a>00110         <a class="code" href="classsmbios_1_1SmbiosFactory.html#a5d98a391a3e2ba9a724ccbea6e4f0a04" title="Use getFactory() to get a factory.">SmbiosFactory</a>();
<a name="l00111"></a>00111     };
<a name="l00112"></a>00112 
<a name="l00114"></a>00114 
<a name="l00117"></a><a class="code" href="classsmbios_1_1ISmbiosTable.html">00117</a>     <span class="keyword">class </span><a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a>
<a name="l00118"></a>00118     {
<a name="l00119"></a>00119     <span class="keyword">public</span>:
<a name="l00120"></a>00120         <span class="comment">// Std container typedefs. Everybody expects to</span>
<a name="l00121"></a>00121         <span class="comment">// say &#39;iterator&#39; or &#39;const_iterator&#39;</span>
<a name="l00122"></a><a class="code" href="classsmbios_1_1ISmbiosTable.html#a3c7c2c1fe03415262b684216b6928c11">00122</a>         <span class="keyword">typedef</span> <a class="code" href="classsmbios_1_1SmbiosTableIterator.html">SmbiosTableIterator</a> <a class="code" href="classsmbios_1_1SmbiosTableIterator.html">iterator</a>;
<a name="l00123"></a><a class="code" href="classsmbios_1_1ISmbiosTable.html#a0c0a65489ea118f6e4ff15b83fa4ccd5">00123</a>         <span class="keyword">typedef</span> <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">ConstSmbiosTableIterator</a> <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">const_iterator</a>;
<a name="l00124"></a>00124 
<a name="l00125"></a>00125         <span class="comment">// CONSTRUCTORS, DESTRUCTOR, and ASSIGNMENT</span>
<a name="l00126"></a>00126         <a class="code" href="classsmbios_1_1ISmbiosTable.html#af85b93c5cd635cbc4f6425d36e35f914">ISmbiosTable</a>();
<a name="l00127"></a>00127         <span class="comment">// Interface class: no default or copy constructor</span>
<a name="l00128"></a>00128         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html#a512e741d4069d3a88fe08fa2e22bcea3">~ISmbiosTable</a> ();
<a name="l00129"></a>00129 
<a name="l00130"></a>00130         <span class="comment">// ITERATORS</span>
<a name="l00131"></a>00131         <span class="comment">//</span>
<a name="l00133"></a>00133 <span class="comment"></span>
<a name="l00146"></a>00146         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1SmbiosTableIterator.html">iterator</a> <a class="code" href="classsmbios_1_1ISmbiosTable.html#aa6177200d8850189d2e284e3df3f7a0a" title="Standard iterator interface. Points to first table item.">begin</a> () = 0;
<a name="l00148"></a>00148 
<a name="l00149"></a>00149         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">const_iterator</a> <a class="code" href="classsmbios_1_1ISmbiosTable.html#aa6177200d8850189d2e284e3df3f7a0a" title="Standard iterator interface. Points to first table item.">begin</a> () <span class="keyword">const</span> = 0;
<a name="l00150"></a>00150 
<a name="l00152"></a>00152 
<a name="l00153"></a>00153         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1SmbiosTableIterator.html">iterator</a> <a class="code" href="classsmbios_1_1ISmbiosTable.html#aabeaf35f937b5cb6b23c232e4d8a4256" title="Standard iterator interface. Points to one-past-the-last table item.">end</a> () = 0;
<a name="l00154"></a>00154 
<a name="l00156"></a>00156 
<a name="l00158"></a>00158         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">const_iterator</a> <a class="code" href="classsmbios_1_1ISmbiosTable.html#aabeaf35f937b5cb6b23c232e4d8a4256" title="Standard iterator interface. Points to one-past-the-last table item.">end</a> () <span class="keyword">const</span> = 0;
<a name="l00159"></a>00159 
<a name="l00161"></a>00161 
<a name="l00176"></a>00176         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1SmbiosTableIterator.html">iterator</a> <a class="code" href="classsmbios_1_1ISmbiosTable.html#a13b19896764e115b28434c3feea58916" title="Standard indexed access by integer item type.">operator[]</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> ) = 0;
<a name="l00177"></a>00177 
<a name="l00179"></a>00179 
<a name="l00180"></a>00180         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">const_iterator</a> <a class="code" href="classsmbios_1_1ISmbiosTable.html#a13b19896764e115b28434c3feea58916" title="Standard indexed access by integer item type.">operator[]</a>( <span class="keyword">const</span> <span class="keywordtype">int</span> ) <span class="keyword">const</span> = 0;
<a name="l00181"></a>00181 
<a name="l00182"></a>00182         <span class="comment">// MEMBERS</span>
<a name="l00184"></a>00184 <span class="comment"></span>
<a name="l00190"></a>00190         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html#a91f5a4bfe3ad34263b3f8c52dbfb75d6" title="Disables all workarounds for _new_ items created by the table.">rawMode</a>(<span class="keywordtype">bool</span> m = <span class="keyword">true</span>) <span class="keyword">const</span> = 0;
<a name="l00191"></a>00191 
<a name="l00193"></a>00193 
<a name="l00210"></a>00210         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html#af7abbc4b4bad56c2f369f7bfdeb29cff" title="Clears out any cached SmbiosItem entries in the cache.">clearItemCache</a>() <span class="keyword">const</span> = 0;
<a name="l00211"></a>00211 
<a name="l00213"></a>00213         <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html#a079fcbfe931029ece11aca4747d4d8b4" title="Returns the number of table items, per SMBIOS table header.">getNumberOfEntries</a> () <span class="keyword">const</span> = 0;  <span class="comment">// used by unit-test code</span>
<a name="l00215"></a>00215 <span class="comment"></span>        <span class="comment">// Used by the validateBios code.</span>
<a name="l00216"></a>00216         <span class="keyword">virtual</span> <a class="code" href="structsmbiosLowlevel_1_1smbios__table__entry__point.html">smbiosLowlevel::smbios_table_entry_point</a> <a class="code" href="classsmbios_1_1ISmbiosTable.html#a8fae25774dc3a0a35490c446864f94c2" title="Returns the table entry point structure.">getTableEPS</a>() <span class="keyword">const</span> = 0;
<a name="l00217"></a>00217 
<a name="l00218"></a><a class="code" href="classsmbios_1_1ISmbiosTable.html#aaa0a9504b2ba53c4c6909419a55d00ae">00218</a>         <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html" title="Iterator base class for ISmbiosTable objects.">SmbiosTableIteratorBase</a>;
<a name="l00219"></a>00219     <span class="keyword">protected</span>:
<a name="l00220"></a>00220         <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_1ISmbiosTable.html#aef80067f7575abf58a68c7fdd600b94b">getSmbiosItem</a> (<span class="keyword">const</span> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> *current) <span class="keyword">const</span> = 0;
<a name="l00221"></a>00221         <span class="keyword">virtual</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_1ISmbiosTable.html#aef80067f7575abf58a68c7fdd600b94b">getSmbiosItem</a> (<span class="keyword">const</span> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> *current) = 0;
<a name="l00222"></a>00222         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> * <a class="code" href="classsmbios_1_1ISmbiosTable.html#a1e75e7fe11a0d1317898233c8b92f739">nextSmbiosStruct</a> ( <span class="keyword">const</span> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> * current = 0) <span class="keyword">const</span> = 0;
<a name="l00223"></a>00223 
<a name="l00225"></a>00225         <span class="comment">//output table information.</span>
<a name="l00229"></a>00229 <span class="comment"></span>        <span class="keyword">virtual</span> std::ostream &amp; <a class="code" href="classsmbios_1_1ISmbiosTable.html#ad43be632920d9ba3abd8bb0bf5376cb7" title="Used by operator &amp;lt;&amp;lt; (std::ostream &amp;amp; cout, const ISmbiosTable &amp;amp; ) to.">streamify</a>(std::ostream &amp; cout ) <span class="keyword">const</span> = 0;
<a name="l00230"></a>00230         <span class="keyword">friend</span> std::ostream &amp; <a class="code" href="classsmbios_1_1ISmbiosTable.html#a58343bc0abb9196ba7099ee8a15b1e5f">operator &lt;&lt; </a>(std::ostream &amp; cout, <span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> &amp; item);
<a name="l00231"></a>00231 
<a name="l00232"></a>00232     <span class="keyword">private</span>:
<a name="l00233"></a>00233         <span class="keyword">explicit</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html#af85b93c5cd635cbc4f6425d36e35f914">ISmbiosTable</a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> &amp;); 
<a name="l00234"></a>00234         <span class="keywordtype">void</span> operator =( <span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> &amp; ); 
<a name="l00235"></a>00235     };
<a name="l00236"></a>00236 
<a name="l00238"></a>00238 
<a name="l00241"></a><a class="code" href="classsmbios_1_1ISmbiosItem.html">00241</a>     <span class="keyword">class </span><a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">ISmbiosItem</a>
<a name="l00242"></a>00242     {
<a name="l00243"></a>00243     <span class="keyword">public</span>:
<a name="l00245"></a>00245         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1ISmbiosItem.html#a347a7e9ea2b7b38cfac95746f362b2b4">~ISmbiosItem</a> ();
<a name="l00246"></a>00246         <a class="code" href="classsmbios_1_1ISmbiosItem.html#a9bb8211589f1b84dfcfc13a369e51600">ISmbiosItem</a>();
<a name="l00247"></a>00247 
<a name="l00248"></a>00248         <span class="keyword">virtual</span> std::auto_ptr&lt;const ISmbiosItem&gt; <a class="code" href="classsmbios_1_1ISmbiosItem.html#aa32075cb6f7a7d2876fe480f905a72a2">clone</a>() <span class="keyword">const</span> = 0;
<a name="l00249"></a>00249         <span class="keyword">virtual</span> std::auto_ptr&lt;ISmbiosItem&gt; <a class="code" href="classsmbios_1_1ISmbiosItem.html#aa32075cb6f7a7d2876fe480f905a72a2">clone</a>() = 0;
<a name="l00250"></a>00250 
<a name="l00256"></a>00256         <span class="keyword">virtual</span> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="classsmbios_1_1ISmbiosItem.html#a7a331ce5284e45d063fd67fa516edb0f">getType</a>() <span class="keyword">const</span> = 0;
<a name="l00257"></a>00257 
<a name="l00263"></a>00263         <span class="keyword">virtual</span> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="classsmbios_1_1ISmbiosItem.html#ace865d9ed62e3afed7eaa137563c9815">getLength</a>() <span class="keyword">const</span> = 0;
<a name="l00264"></a>00264 
<a name="l00270"></a>00270         <span class="keyword">virtual</span> <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="classsmbios_1_1ISmbiosItem.html#a06efc11ad23312e4e52214757cbce85a">getHandle</a>() <span class="keyword">const</span> = 0;
<a name="l00271"></a>00271 
<a name="l00296"></a>00296         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1ISmbiosItem.html#a092c7cce7fb509a78936a54aeeca9c1c">getData</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset, <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> *out, <span class="keywordtype">size_t</span> size ) <span class="keyword">const</span> = 0;
<a name="l00297"></a>00297 
<a name="l00298"></a>00298         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a>* <a class="code" href="classsmbios_1_1ISmbiosItem.html#ace295ad063652de215c7bc8abb8efefa">getBufferCopy</a>(<span class="keywordtype">size_t</span> &amp;length) <span class="keyword">const</span> = 0;
<a name="l00299"></a>00299 
<a name="l00301"></a>00301         <span class="comment">// The validateBios.cpp calls this function.</span>
<a name="l00302"></a>00302         <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classsmbios_1_1ISmbiosItem.html#a67462fa86157c71f08adad0d7347054f" title="Returns the buffer size of the item.">getBufferSize</a>() <span class="keyword">const</span> = 0;
<a name="l00303"></a>00303 
<a name="l00308"></a>00308         <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classsmbios_1_1ISmbiosItem.html#a3b3ffac109c3798f7d48dc12f64b62e7">getStringByStringNumber</a> (<a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a>) <span class="keyword">const</span> = 0;
<a name="l00309"></a>00309 
<a name="l00310"></a>00310         <span class="keyword">enum</span> {
<a name="l00311"></a><a class="code" href="classsmbios_1_1ISmbiosItem.html#add1e30de0e09502bf4f7b22d546e4d02af1fa5bcd58de5a09363db9dcb5a5266c">00311</a>             <a class="code" href="classsmbios_1_1ISmbiosItem.html#add1e30de0e09502bf4f7b22d546e4d02af1fa5bcd58de5a09363db9dcb5a5266c">FIELD_LEN_BYTE</a>=1,
<a name="l00312"></a><a class="code" href="classsmbios_1_1ISmbiosItem.html#add1e30de0e09502bf4f7b22d546e4d02a4ed604a4668243eb0d51b9d1b9b9ed9b">00312</a>             <a class="code" href="classsmbios_1_1ISmbiosItem.html#add1e30de0e09502bf4f7b22d546e4d02a4ed604a4668243eb0d51b9d1b9b9ed9b">FIELD_LEN_WORD</a>=2,
<a name="l00313"></a><a class="code" href="classsmbios_1_1ISmbiosItem.html#add1e30de0e09502bf4f7b22d546e4d02ab64bb2b0252013ac43a19fc3d82bd6b8">00313</a>             <a class="code" href="classsmbios_1_1ISmbiosItem.html#add1e30de0e09502bf4f7b22d546e4d02ab64bb2b0252013ac43a19fc3d82bd6b8">FIELD_LEN_DWORD</a>=4,
<a name="l00314"></a><a class="code" href="classsmbios_1_1ISmbiosItem.html#add1e30de0e09502bf4f7b22d546e4d02ac52ea7f8bb3dfa94c86b74fd9b404ce7">00314</a>             <a class="code" href="classsmbios_1_1ISmbiosItem.html#add1e30de0e09502bf4f7b22d546e4d02ac52ea7f8bb3dfa94c86b74fd9b404ce7">FIELD_LEN_QWORD</a>=8
<a name="l00315"></a>00315         };
<a name="l00316"></a>00316 
<a name="l00317"></a>00317     <span class="keyword">protected</span>:
<a name="l00323"></a>00323         <span class="keyword">virtual</span> std::ostream &amp; <a class="code" href="classsmbios_1_1ISmbiosItem.html#aa16b721a71d933555b5668c50c9b8133">streamify</a>( std::ostream &amp; cout ) <span class="keyword">const</span> = 0;
<a name="l00324"></a>00324         <span class="keyword">friend</span> std::ostream &amp; <a class="code" href="classsmbios_1_1ISmbiosItem.html#ad1ae766e94e8f56fbb8e308d392576b8">operator &lt;&lt; </a>(std::ostream &amp; cout, <span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">ISmbiosItem</a> &amp; item);
<a name="l00325"></a>00325     };
<a name="l00326"></a>00326 
<a name="l00327"></a>00327     <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="namespacesmbios.html#a04c9a24a27c22a2867bb9d4e34690f43">getItemType</a>(<span class="keyword">const</span> ISmbiosItem &amp;item);
<a name="l00328"></a>00328     <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="namespacesmbios.html#a2c2a264ffc7966eb4523671478ad1be0">getItemLength</a>(<span class="keyword">const</span> ISmbiosItem &amp;item);
<a name="l00329"></a>00329     <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="namespacesmbios.html#a3451b17f11bcf4f061e2d2fd953d5da2">getItemHandle</a>(<span class="keyword">const</span> ISmbiosItem &amp;item);
<a name="l00330"></a>00330 
<a name="l00331"></a>00331     <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> <a class="code" href="namespacesmbios.html#a28d1c90d21b9c5b40d79be3eac71df94">getU8_FromItem</a>(<span class="keyword">const</span> ISmbiosItem &amp;item, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset);
<a name="l00332"></a>00332     <a class="code" href="types_8h.html#a9e6c91d77e24643b888dbd1a1a590054">u16</a> <a class="code" href="namespacesmbios.html#ae81fab91881b1b8665c2464710415da6">getU16_FromItem</a>(<span class="keyword">const</span> ISmbiosItem &amp;item, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset);
<a name="l00333"></a>00333     <a class="code" href="types_8h.html#a10e94b422ef0c20dcdec20d31a1f5049">u32</a> <a class="code" href="namespacesmbios.html#afc129756a749c5b67d82cfa92b6d155c">getU32_FromItem</a>(<span class="keyword">const</span> ISmbiosItem &amp;item, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset);
<a name="l00334"></a>00334     u64 <a class="code" href="namespacesmbios.html#abbd7659fad222d779094f0be9a7e7205">getU64_FromItem</a>(<span class="keyword">const</span> ISmbiosItem &amp;item, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset);
<a name="l00335"></a>00335     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="namespacesmbios.html#afcc65bc2f27aa290a55403270d0b2a3a">getString_FromItem</a>(<span class="keyword">const</span> ISmbiosItem &amp;item, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset);
<a name="l00336"></a>00336     <span class="keywordtype">void</span> *<a class="code" href="namespacesmbios.html#a3a8f8a8f75c758692406f1865e1e465e">getBits_FromItem</a>(<span class="keyword">const</span> ISmbiosItem &amp;item, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset, <span class="keywordtype">void</span> *out, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> lsb=0, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> msb=0 );
<a name="l00337"></a>00337     <span class="keywordtype">bool</span> <a class="code" href="namespacesmbios.html#a726c842e9b4563398702232065612255">isBitSet</a>(<span class="keyword">const</span> ISmbiosItem *itemPtr, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bitToTest);
<a name="l00338"></a>00338 
<a name="l00339"></a>00339     <span class="keyword">template</span> &lt;<span class="keyword">class</span> R&gt;
<a name="l00340"></a><a class="code" href="namespacesmbios.html#a55df22eb2c272d64515edaeb6cfa54f6">00340</a>     R &amp;<a class="code" href="namespacesmbios.html#a55df22eb2c272d64515edaeb6cfa54f6">getData</a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">ISmbiosItem</a> &amp;item, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> offset, R &amp;out)
<a name="l00341"></a>00341     {
<a name="l00342"></a>00342         item.<a class="code" href="classsmbios_1_1ISmbiosItem.html#a092c7cce7fb509a78936a54aeeca9c1c">getData</a>(offset, &amp;out, <span class="keyword">sizeof</span>(R));
<a name="l00343"></a>00343         <span class="keywordflow">return</span> out;
<a name="l00344"></a>00344     }
<a name="l00345"></a>00345 
<a name="l00347"></a>00347 
<a name="l00354"></a><a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html">00354</a>     <span class="keyword">class </span><a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html" title="Iterator base class for ISmbiosTable objects.">SmbiosTableIteratorBase</a>
<a name="l00355"></a>00355     {
<a name="l00356"></a>00356     <span class="keyword">public</span>:
<a name="l00357"></a><a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a00bb634eb541e7f6910e05f2068df632">00357</a>         <span class="keyword">typedef</span> std::forward_iterator_tag iterator_category;
<a name="l00358"></a><a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#ab7999d4246f04e8e76725c4032cabf6c">00358</a>         <span class="keyword">typedef</span> std::ptrdiff_t difference_type;
<a name="l00359"></a>00359 
<a name="l00360"></a>00360 
<a name="l00361"></a>00361         <span class="keyword">explicit</span> <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a43824aca5b58a4a9dd25b561f92b4031">SmbiosTableIteratorBase</a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> * initialTable = 0, <span class="keywordtype">int</span> typeToMatch = -1 );
<a name="l00362"></a>00362         <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html" title="Iterator base class for ISmbiosTable objects.">SmbiosTableIteratorBase</a> &amp;<a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a8394d8e0df8a65714901ef274e109a8f">operator=</a>(<span class="keyword">const</span> <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html" title="Iterator base class for ISmbiosTable objects.">SmbiosTableIteratorBase</a>&amp;);
<a name="l00363"></a>00363         <span class="keyword">virtual</span> <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#aa8bb2d98193d306c29e7094a7a4cd895">~SmbiosTableIteratorBase</a>() throw();
<a name="l00364"></a>00364         <span class="keywordtype">bool</span> operator == (const <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html" title="Iterator base class for ISmbiosTable objects.">SmbiosTableIteratorBase</a> &amp;other) const;
<a name="l00365"></a>00365         <span class="keywordtype">bool</span> operator != (const <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html" title="Iterator base class for ISmbiosTable objects.">SmbiosTableIteratorBase</a> &amp;other) const;
<a name="l00366"></a>00366         <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a6569b19887b81abbfa1dc24268b50476">incrementIterator</a> ();
<a name="l00367"></a>00367         const <a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">ISmbiosItem</a> &amp; <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a42a5f03d2c801072599a3f8872758827">dereference</a> () const;
<a name="l00368"></a>00368         <a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">ISmbiosItem</a> &amp; <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a42a5f03d2c801072599a3f8872758827">dereference</a> ();
<a name="l00369"></a>00369 
<a name="l00370"></a>00370         <span class="keywordtype">void</span> <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#aaf903c79ed0c587effe9ade805e8a1b2">reset</a>();
<a name="l00371"></a>00371         <span class="keywordtype">bool</span> <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#aa3d340e473646176632ec4dfabaa8d10">eof</a>();
<a name="l00372"></a>00372 
<a name="l00373"></a>00373     protected:
<a name="l00374"></a><a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a97c683cb53c53c7db5bab90bb8205990">00374</a>         <span class="keywordtype">int</span> <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a97c683cb53c53c7db5bab90bb8205990">matchType</a>;
<a name="l00375"></a><a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a7604f0f7dbfe00e25f094136793a664a">00375</a>         const <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> * <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a7604f0f7dbfe00e25f094136793a664a">table</a>;
<a name="l00376"></a><a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a744999143c29ef9e95532d0e96b4b590">00376</a>         const <a class="code" href="types_8h.html#aed742c436da53c1080638ce6ef7d13de">u8</a> * <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html#a744999143c29ef9e95532d0e96b4b590">current</a>;
<a name="l00377"></a>00377     };
<a name="l00378"></a>00378 
<a name="l00379"></a><a class="code" href="classsmbios_1_1SmbiosTableIterator.html">00379</a>     class <a class="code" href="classsmbios_1_1SmbiosTableIterator.html">SmbiosTableIterator</a>:
<a name="l00380"></a>00380         public <a class="code" href="classsmbios_1_1SmbiosTableIteratorBase.html" title="Iterator base class for ISmbiosTable objects.">SmbiosTableIteratorBase</a>,
<a name="l00381"></a>00381         public std::iterator &lt; std::forward_iterator_tag, <a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">ISmbiosItem</a> &gt;
<a name="l00382"></a>00382     {
<a name="l00383"></a>00383     <span class="keyword">public</span>:
<a name="l00384"></a><a class="code" href="classsmbios_1_1SmbiosTableIterator.html#a4d90f49dc8609cca6e12ea5099f40505">00384</a>         <span class="keyword">typedef</span> ISmbiosItem <a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">value_type</a>;
<a name="l00385"></a><a class="code" href="classsmbios_1_1SmbiosTableIterator.html#a286d25921c6b4ae7e8ac3d5a50dc30d2">00385</a>         <span class="keyword">typedef</span> value_type&amp; <a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">reference</a>;
<a name="l00386"></a><a class="code" href="classsmbios_1_1SmbiosTableIterator.html#a401bdcecf8385a8f30646715e43c3838">00386</a>         <span class="keyword">typedef</span> value_type* <a class="code" href="classsmbios_1_1ISmbiosItem.html" title="Interface definition for Smbios Item operations.">pointer</a>;
<a name="l00387"></a>00387 
<a name="l00388"></a>00388         <span class="keyword">virtual</span> ~<a class="code" href="classsmbios_1_1SmbiosTableIterator.html">SmbiosTableIterator</a>() throw();
<a name="l00389"></a>00389         explicit <a class="code" href="classsmbios_1_1SmbiosTableIterator.html">SmbiosTableIterator</a>(<a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> * initialTable = 0, <span class="keywordtype">int</span> typeToMatch = -1 );
<a name="l00390"></a>00390         reference operator * ();
<a name="l00391"></a>00391         pointer   operator -&gt; ();
<a name="l00392"></a>00392         <a class="code" href="classsmbios_1_1SmbiosTableIterator.html">SmbiosTableIterator</a> &amp; operator ++ (); <span class="comment">// ++Prefix</span>
<a name="l00393"></a>00393         const <a class="code" href="classsmbios_1_1SmbiosTableIterator.html">SmbiosTableIterator</a> operator ++ (<span class="keywordtype">int</span>);  <span class="comment">//Postfix++</span>
<a name="l00394"></a>00394     };
<a name="l00395"></a>00395 
<a name="l00396"></a><a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">00396</a>     class <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">ConstSmbiosTableIterator</a>:
<a name="l00397"></a>00397         public SmbiosTableIteratorBase,
<a name="l00398"></a>00398         public std::iterator &lt; std::forward_iterator_tag, const ISmbiosItem &gt;
<a name="l00399"></a>00399     {
<a name="l00400"></a>00400     <span class="keyword">public</span>:
<a name="l00401"></a><a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html#a5e3d42fb33923ffa76ca8e169e3473d5">00401</a>         <span class="keyword">typedef</span> <span class="keyword">const</span> ISmbiosItem value_type;
<a name="l00402"></a><a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html#af0275702f0dc4a4ff3515c5ddcbf0ace">00402</a>         <span class="keyword">typedef</span> value_type&amp; reference;
<a name="l00403"></a><a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html#a5fd7d8086a1beb8c5dcc0bacfd3f2cb5">00403</a>         <span class="keyword">typedef</span> value_type* pointer;
<a name="l00404"></a>00404 
<a name="l00405"></a>00405         <span class="keyword">virtual</span> ~<a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">ConstSmbiosTableIterator</a>() throw();
<a name="l00406"></a>00406         explicit <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">ConstSmbiosTableIterator</a>(const <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> * initialTable = 0, <span class="keywordtype">int</span> typeToMatch = -1 );
<a name="l00407"></a>00407         <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">ConstSmbiosTableIterator</a> &amp;operator=(const SmbiosTableIteratorBase&amp;);
<a name="l00408"></a>00408 
<a name="l00409"></a>00409         reference operator * () const;
<a name="l00410"></a>00410         pointer   operator -&gt; () const;
<a name="l00411"></a>00411         <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">ConstSmbiosTableIterator</a> &amp; operator ++ (); <span class="comment">// ++Prefix</span>
<a name="l00412"></a>00412         const <a class="code" href="classsmbios_1_1ConstSmbiosTableIterator.html">ConstSmbiosTableIterator</a> operator ++ (<span class="keywordtype">int</span>);  <span class="comment">//Postfix++</span>
<a name="l00413"></a>00413     };
<a name="l00414"></a>00414 
<a name="l00415"></a>00415     <span class="comment">//</span>
<a name="l00416"></a>00416     <span class="comment">// Non-member functions</span>
<a name="l00417"></a>00417     <span class="comment">//</span>
<a name="l00418"></a>00418     std::ostream &amp; operator &lt;&lt; (std::ostream &amp; cout, const <a class="code" href="classsmbios_1_1ISmbiosTable.html" title="Interface definition for Smbios Table operations.">ISmbiosTable</a> &amp; item);
<a name="l00419"></a>00419     std::ostream &amp; operator &lt;&lt; (std::ostream &amp; cout, const ISmbiosItem &amp; item);
<a name="l00420"></a>00420 
<a name="l00421"></a>00421 }
<a name="l00422"></a>00422 
<a name="l00423"></a>00423 
<a name="l00424"></a>00424 <span class="comment">// always should be last thing in header file</span>
<a name="l00425"></a>00425 <span class="preprocessor">#include &quot;smbios/config/abi_suffix.hpp&quot;</span>
<a name="l00426"></a>00426 <span class="preprocessor"></span>
<a name="l00427"></a>00427 <span class="preprocessor">#endif  </span><span class="comment">/* SMBIOSINTERFACE_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>