SmbiosTableXml Class Reference

#include <SmbiosXmlImpl.h>

Inheritance diagram for SmbiosTableXml:

SmbiosTable SmbiosTable ISmbiosTable ISmbiosTable

List of all members.

Public Types

typedef SmbiosTableIterator iterator
typedef ConstSmbiosTableIterator const_iterator

Public Member Functions

virtual iterator operator[] (const std::string &)
 Standard indexed access by string description. XML ENHANCED.
virtual const_iterator operator[] (const std::string &) const
 Standard indexed access by string description. XML ENHANCED.
virtual std::ostream & streamify (std::ostream &cout) const
 Used by operator << (std::ostream & cout, const ISmbiosTable & ) to.
virtual ~SmbiosTableXml ()
 SmbiosTableXml (std::vector< SmbiosStrategy * > initStrategyList, bool strictValidation=0)
void setXmlFilePath (std::string)
int getTypeForString (const std::string) const
const std::string getStringForType (const int) const
const XML_NAMESPACE DOMDocument * getXmlDoc () const
virtual iterator operator[] (const std::string &)
 Standard indexed access by string description. XML ENHANCED.
virtual const_iterator operator[] (const std::string &) const
 Standard indexed access by string description. XML ENHANCED.
virtual std::ostream & streamify (std::ostream &cout) const
 Used by operator << (std::ostream & cout, const ISmbiosTable & ) to.
virtual ~SmbiosTableXml ()
 SmbiosTableXml (std::vector< SmbiosStrategy * > initStrategyList, bool strictValidation=0)
void setXmlFilePath (std::string)
int getTypeForString (const std::string) const
const std::string getStringForType (const int) const
const XML_NAMESPACE DOMDocument * getXmlDoc () const
virtual iterator begin ()
 Standard iterator interface. Points to first table item.
virtual const_iterator begin () const
 Standard iterator interface. Points to first table item.
virtual iterator end ()
 Standard iterator interface. Points to one-past-the-last table item.
virtual const_iterator end () const
 Standard iterator interface. Points to one-past-the-last table item.
virtual iterator operator[] (const int)
 Standard indexed access by integer item type.
virtual const_iterator operator[] (const int) const
 Standard indexed access by integer item type.
virtual void rawMode (bool m) const
 Disables all workarounds for _new_ items created by the table.
virtual int getNumberOfEntries () const
 Returns the number of table items, per SMBIOS table header.
virtual
smbiosLowlevel::smbios_table_entry_point 
getTableEPS () const
 Returns the table entry point structure.
virtual void initializeWorkaround () const
virtual void setStrictValidationMode (bool mode) const
virtual bool getStrictValidationMode () const
virtual ISmbiosItemgetCachedItem (const void *) const
virtual void cacheItem (const void *, ISmbiosItem &newitem) const
virtual void clearItemCache () const
 Clears out any cached SmbiosItem entries in the cache.

Protected Member Functions

 SmbiosTableXml ()
 SmbiosTableXml ()
virtual ISmbiosItemmakeItem (const void *header=0) const
const void * nextSmbiosStruct (const void *current=0) const

Protected Attributes

std::string xmlFile
XML_NAMESPACE DOMBuilder * parser
XML_NAMESPACE DOMDocument * doc
bool xmlInitialized
std::map< const void
*, ISmbiosItem * > 
itemList
bool initializing
bool strictValidationMode
std::auto_ptr
< SmbiosWorkaroundTable
workaround
const u8smbiosBuffer
smbiosLowlevel::smbios_table_entry_point table_header

Private Member Functions

 SmbiosTableXml (const SmbiosTableXml &source)
SmbiosTableXmloperator= (const SmbiosTableXml &source)
 SmbiosTableXml (const SmbiosTableXml &source)
SmbiosTableXmloperator= (const SmbiosTableXml &source)

Friends

class SmbiosTableIteratorBase


Detailed Description

Definition at line 31 of file xml_libxerces/SmbiosXmlImpl.h.


Member Typedef Documentation

Definition at line 123 of file ISmbios.h.

typedef SmbiosTableIterator iterator [inherited]

Definition at line 122 of file ISmbios.h.


Constructor & Destructor Documentation

~SmbiosTableXml (  )  [virtual]

SmbiosTableXml ( std::vector< SmbiosStrategy * >  initStrategyList,
bool  strictValidation = 0 
) [explicit]

SmbiosTableXml (  )  [protected]

SmbiosTableXml ( const SmbiosTableXml source  )  [private]

virtual ~SmbiosTableXml (  )  [virtual]

SmbiosTableXml ( std::vector< SmbiosStrategy * >  initStrategyList,
bool  strictValidation = 0 
) [explicit]

SmbiosTableXml (  )  [protected]

SmbiosTableXml ( const SmbiosTableXml source  )  [private]


Member Function Documentation

SmbiosTable::const_iterator begin (  )  const [virtual, inherited]

Standard iterator interface. Points to first table item.

Standard iterator interface. Points to first table item.

Returns:
iterator or const_iterator Example Iterator Usage:
    smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
    smbios::ISmbiosTable::iterator item = table->begin();
    while( item != table->end() )
    {
        cout << "Type of Item: " << item->getType();
        ++item;
    }

Implements ISmbiosTable.

Definition at line 127 of file SmbiosTable.cpp.

SmbiosTable::iterator begin (  )  [virtual, inherited]

Standard iterator interface. Points to first table item.

Returns:
iterator or const_iterator Example Iterator Usage:
    smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
    smbios::ISmbiosTable::iterator item = table->begin();
    while( item != table->end() )
    {
        cout << "Type of Item: " << item->getType();
        ++item;
    }

Implements ISmbiosTable.

Definition at line 122 of file SmbiosTable.cpp.

void cacheItem ( const void *  ptr,
ISmbiosItem newitem 
) const [virtual, inherited]

Definition at line 113 of file SmbiosTable.cpp.

References SmbiosTable::itemList.

Referenced by SmbiosTableIteratorBase::dereference().

void clearItemCache (  )  const [virtual, inherited]

Clears out any cached SmbiosItem entries in the cache.

This API is useful for two instances. First, you can use this to reduce memory usage if you know that you do not need any ISmbiosItem(s) out of the table for a while. The cached ISmbiosItem(s) will be deleted and then re-populated on demand when queries are made for them.

Next, this API is used internally when reReadTable() is called to clear out all old ISmbiosItems.

Warning:
All previous references or pointers to ISmbiosItem objects created from this table become invalid and attempts to access them will cause undefined behaviour (most likely your code will crash.)
Todo:
clearItemCache() needs to be made an abstract function and the definition needs to be moved to the SmbiosItem class. This needs to happen at the same time that itemList is moved.

Implements ISmbiosTable.

Definition at line 242 of file SmbiosTable.cpp.

References SmbiosTable::itemList.

Referenced by SmbiosTable::initializeWorkaround(), SmbiosTable::reReadTable(), and SmbiosTable::~SmbiosTable().

SmbiosTable::const_iterator end (  )  const [virtual, inherited]

Standard iterator interface. Points to one-past-the-last table item.

Used by const_iterator. Standard iterator interface. Points to first table item.

Returns:
iterator or const_iterator Example Iterator Usage:
    smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
    smbios::ISmbiosTable::iterator item = table->begin();
    while( item != table->end() )
    {
        cout << "Type of Item: " << item->getType();
        ++item;
    }

Implements ISmbiosTable.

Definition at line 137 of file SmbiosTable.cpp.

SmbiosTable::iterator end (  )  [virtual, inherited]

Standard iterator interface. Points to one-past-the-last table item.

Standard iterator interface. Points to first table item.

Returns:
iterator or const_iterator Example Iterator Usage:
    smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
    smbios::ISmbiosTable::iterator item = table->begin();
    while( item != table->end() )
    {
        cout << "Type of Item: " << item->getType();
        ++item;
    }

Implements ISmbiosTable.

Definition at line 132 of file SmbiosTable.cpp.

ISmbiosItem * getCachedItem ( const void *  itemPtr  )  const [virtual, inherited]

Definition at line 95 of file SmbiosTable.cpp.

References _, and SmbiosTable::itemList.

Referenced by SmbiosTableIteratorBase::dereference().

int getNumberOfEntries (  )  const [virtual, inherited]

Returns the number of table items, per SMBIOS table header.

Implements ISmbiosTable.

Definition at line 337 of file SmbiosTable.cpp.

References smbios_table_entry_point::dmi, SmbiosTable::table_header, and dmi_table_entry_point::table_num_structs.

bool getStrictValidationMode (  )  const [virtual, inherited]

Definition at line 261 of file SmbiosTable.cpp.

References SmbiosTable::strictValidationMode.

Referenced by SmbiosTable::reReadTable().

const std::string getStringForType ( const   int  )  const

const string getStringForType ( const int  searchForType  )  const

Definition at line 300 of file SmbiosXml.cpp.

References SmbiosTableXml::doc.

smbiosLowlevel::smbios_table_entry_point getTableEPS (  )  const [virtual, inherited]

Returns the table entry point structure.

Implements ISmbiosTable.

Definition at line 342 of file SmbiosTable.cpp.

References SmbiosTable::table_header.

int getTypeForString ( const std::string   )  const

int getTypeForString ( const std::string   )  const

const XML_NAMESPACE DOMDocument* getXmlDoc (  )  const

const DOMDocument * getXmlDoc (  )  const

void initializeWorkaround (  )  const [virtual, inherited]

ISmbiosItem & makeItem ( const void *  header = 0  )  const [protected, virtual, inherited]

const void * nextSmbiosStruct ( const void *  current = 0  )  const [protected, inherited]

SmbiosTableXml& operator= ( const SmbiosTableXml source  )  [private]

SmbiosTableXml& operator= ( const SmbiosTableXml source  )  [private]

SmbiosTable::const_iterator operator[] ( const   int  )  const [virtual, inherited]

Standard indexed access by integer item type.

Standard indexed access by integer item type.

The operator[] method returns an iterator that can be used to iterator over all items in the table of the supplied type. So, for example, if you want to perform an operation on all SMBIOS type 0x01 (System Information Block) structures, just index the table object using the [] operator.

Returns:
iterator or const_iterator Sample usage:
// Integer indexing example
smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)[0];
cout << "The BIOS Version is: " << item1->getString(0x05) << endl;

// XML string indexing example
smbios::ISmbiosTable *table = smbios::SmbiosXmlFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)["BIOS Information"];
cout << "The BIOS Version is: " << item1->getString("BIOS Version") << endl;
See also:
operator[]( const std::string & ) const

Implements ISmbiosTable.

Definition at line 147 of file SmbiosTable.cpp.

SmbiosTable::iterator operator[] ( const   int  )  [virtual, inherited]

Standard indexed access by integer item type.

The operator[] method returns an iterator that can be used to iterator over all items in the table of the supplied type. So, for example, if you want to perform an operation on all SMBIOS type 0x01 (System Information Block) structures, just index the table object using the [] operator.

Returns:
iterator or const_iterator Sample usage:
// Integer indexing example
smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)[0];
cout << "The BIOS Version is: " << item1->getString(0x05) << endl;

// XML string indexing example
smbios::ISmbiosTable *table = smbios::SmbiosXmlFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)["BIOS Information"];
cout << "The BIOS Version is: " << item1->getString("BIOS Version") << endl;
See also:
operator[]( const std::string & ) const

Implements ISmbiosTable.

Definition at line 142 of file SmbiosTable.cpp.

virtual const_iterator operator[] ( const std::string &   )  const [virtual]

Standard indexed access by string description. XML ENHANCED.

Standard indexed access by string description. XML ENHANCED.

XML Enhanced indexing operator. You can pass in a string description of the table and the SmbiosTable class will look up the string in an XML description file to find out the item number that corresponds with that text.

The nice extension that is supplied by the XML interface is that all Item access to the item returned are type checked against the XML, so you cannot, for example, access an 8-bit number as a 16-bit number.

Standard indexed access by integer item type.

The operator[] method returns an iterator that can be used to iterator over all items in the table of the supplied type. So, for example, if you want to perform an operation on all SMBIOS type 0x01 (System Information Block) structures, just index the table object using the [] operator.

Returns:
iterator or const_iterator Sample usage:
// Integer indexing example
smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)[0];
cout << "The BIOS Version is: " << item1->getString(0x05) << endl;

// XML string indexing example
smbios::ISmbiosTable *table = smbios::SmbiosXmlFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)["BIOS Information"];
cout << "The BIOS Version is: " << item1->getString("BIOS Version") << endl;
See also:
operator[]( const std::string & ) const
See also:
operator[]( const int )

Reimplemented from SmbiosTable.

virtual iterator operator[] ( const std::string &   )  [virtual]

Standard indexed access by string description. XML ENHANCED.

XML Enhanced indexing operator. You can pass in a string description of the table and the SmbiosTable class will look up the string in an XML description file to find out the item number that corresponds with that text.

The nice extension that is supplied by the XML interface is that all Item access to the item returned are type checked against the XML, so you cannot, for example, access an 8-bit number as a 16-bit number.

Standard indexed access by integer item type.

The operator[] method returns an iterator that can be used to iterator over all items in the table of the supplied type. So, for example, if you want to perform an operation on all SMBIOS type 0x01 (System Information Block) structures, just index the table object using the [] operator.

Returns:
iterator or const_iterator Sample usage:
// Integer indexing example
smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)[0];
cout << "The BIOS Version is: " << item1->getString(0x05) << endl;

// XML string indexing example
smbios::ISmbiosTable *table = smbios::SmbiosXmlFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)["BIOS Information"];
cout << "The BIOS Version is: " << item1->getString("BIOS Version") << endl;
See also:
operator[]( const std::string & ) const
See also:
operator[]( const int )

Reimplemented from SmbiosTable.

virtual const_iterator operator[] ( const std::string &   )  const [virtual]

Standard indexed access by string description. XML ENHANCED.

Standard indexed access by string description. XML ENHANCED.

XML Enhanced indexing operator. You can pass in a string description of the table and the SmbiosTable class will look up the string in an XML description file to find out the item number that corresponds with that text.

The nice extension that is supplied by the XML interface is that all Item access to the item returned are type checked against the XML, so you cannot, for example, access an 8-bit number as a 16-bit number.

Standard indexed access by integer item type.

The operator[] method returns an iterator that can be used to iterator over all items in the table of the supplied type. So, for example, if you want to perform an operation on all SMBIOS type 0x01 (System Information Block) structures, just index the table object using the [] operator.

Returns:
iterator or const_iterator Sample usage:
// Integer indexing example
smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)[0];
cout << "The BIOS Version is: " << item1->getString(0x05) << endl;

// XML string indexing example
smbios::ISmbiosTable *table = smbios::SmbiosXmlFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)["BIOS Information"];
cout << "The BIOS Version is: " << item1->getString("BIOS Version") << endl;
See also:
operator[]( const std::string & ) const
See also:
operator[]( const int )

Reimplemented from SmbiosTable.

virtual iterator operator[] ( const std::string &   )  [virtual]

Standard indexed access by string description. XML ENHANCED.

XML Enhanced indexing operator. You can pass in a string description of the table and the SmbiosTable class will look up the string in an XML description file to find out the item number that corresponds with that text.

The nice extension that is supplied by the XML interface is that all Item access to the item returned are type checked against the XML, so you cannot, for example, access an 8-bit number as a 16-bit number.

Standard indexed access by integer item type.

The operator[] method returns an iterator that can be used to iterator over all items in the table of the supplied type. So, for example, if you want to perform an operation on all SMBIOS type 0x01 (System Information Block) structures, just index the table object using the [] operator.

Returns:
iterator or const_iterator Sample usage:
// Integer indexing example
smbios::ISmbiosTable *table = smbios::SmbiosFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)[0];
cout << "The BIOS Version is: " << item1->getString(0x05) << endl;

// XML string indexing example
smbios::ISmbiosTable *table = smbios::SmbiosXmlFactory::getFactory()->getSingleton();
smbios::ISmbiosTable::iterator item1 = (*table)["BIOS Information"];
cout << "The BIOS Version is: " << item1->getString("BIOS Version") << endl;
See also:
operator[]( const std::string & ) const
See also:
operator[]( const int )

Reimplemented from SmbiosTable.

void rawMode ( bool  m  )  const [virtual, inherited]

Disables all workarounds for _new_ items created by the table.

Any new item generated by the table will not have workarounds applied to them. However, any previously-existing items that have had workarounds applied still exist. If this is not what you want, recommend calling clearItemCache() prior to calling rawMode().

Parameters:
m pass in a bool value to turn raw mode on or off.

Implements ISmbiosTable.

Definition at line 237 of file SmbiosTable.cpp.

References SmbiosTable::initializing.

void setStrictValidationMode ( bool  mode  )  const [virtual, inherited]

Definition at line 256 of file SmbiosTable.cpp.

References SmbiosTable::strictValidationMode.

void setXmlFilePath ( std::string   ) 

void setXmlFilePath ( std::string  newFile  ) 

virtual std::ostream& streamify ( std::ostream &  cout  )  const [virtual]

Used by operator << (std::ostream & cout, const ISmbiosTable & ) to.

Users normally would not need or want to call this API. The normal operator<<() has been overloaded to call this function internally.

Reimplemented from SmbiosTable.

virtual std::ostream& streamify ( std::ostream &  cout  )  const [virtual]

Used by operator << (std::ostream & cout, const ISmbiosTable & ) to.

Users normally would not need or want to call this API. The normal operator<<() has been overloaded to call this function internally.

Reimplemented from SmbiosTable.


Friends And Related Function Documentation

friend class SmbiosTableIteratorBase [friend, inherited]

Definition at line 152 of file SmbiosImpl.h.


Member Data Documentation

XML_NAMESPACE DOMDocument * doc [protected]

bool initializing [mutable, protected, inherited]

std::map< const void *, ISmbiosItem *> itemList [mutable, protected, inherited]

XML_NAMESPACE DOMBuilder * parser [protected]

const u8* smbiosBuffer [protected, inherited]

bool strictValidationMode [mutable, protected, inherited]

std::auto_ptr<SmbiosWorkaroundTable> workaround [mutable, protected, inherited]

Definition at line 168 of file SmbiosImpl.h.

Referenced by SmbiosTable::initializeWorkaround(), and SmbiosTable::makeItem().

std::string xmlFile [protected]

bool xmlInitialized [protected]


The documentation for this class was generated from the following files:

Generated on Tue Dec 23 18:41:23 2008 for SMBIOS Library by  doxygen 1.5.7