#include <SmbiosXmlImpl.h>
Inheritance diagram for SmbiosTableXml:
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 ISmbiosItem * | getCachedItem (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 ISmbiosItem & | makeItem (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 |
XML_NAMESPACE DOMBuilder * | parser |
XML_NAMESPACE DOMDocument * | doc |
std::map< const void *, ISmbiosItem * > | itemList |
bool | initializing |
bool | strictValidationMode |
std::auto_ptr< SmbiosWorkaroundTable > | workaround |
const u8 * | smbiosBuffer |
smbiosLowlevel::smbios_table_entry_point | table_header |
Private Member Functions | |
SmbiosTableXml (const SmbiosTableXml &source) | |
SmbiosTableXml & | operator= (const SmbiosTableXml &source) |
SmbiosTableXml (const SmbiosTableXml &source) | |
SmbiosTableXml & | operator= (const SmbiosTableXml &source) |
Friends | |
class | SmbiosTableIteratorBase |
Definition at line 31 of file xml_libxerces/SmbiosXmlImpl.h.
typedef SmbiosTableIterator iterator [inherited] |
typedef ConstSmbiosTableIterator const_iterator [inherited] |
~SmbiosTableXml | ( | ) | [virtual] |
Definition at line 237 of file SmbiosXml.cpp.
References SmbiosTableXml::doc, FiniXML, SmbiosTableXml::parser, xmlFreeDoc, xmlFreeParser, and SmbiosTableXml::xmlInitialized.
SmbiosTableXml | ( | std::vector< SmbiosStrategy * > | initStrategyList, | |
bool | strictValidation = 0 | |||
) | [explicit] |
Definition at line 229 of file SmbiosXml.cpp.
References CHECK_VERSION_COMPAT, SmbiosTableXml::setXmlFilePath(), and SmbiosTableXml::xmlFile.
SmbiosTableXml | ( | ) | [protected] |
Definition at line 222 of file SmbiosXml.cpp.
References CHECK_VERSION_COMPAT, SmbiosTableXml::setXmlFilePath(), and SmbiosTableXml::xmlFile.
SmbiosTableXml | ( | const SmbiosTableXml & | source | ) | [private] |
virtual ~SmbiosTableXml | ( | ) | [virtual] |
SmbiosTableXml | ( | std::vector< SmbiosStrategy * > | initStrategyList, | |
bool | strictValidation = 0 | |||
) | [explicit] |
SmbiosTableXml | ( | ) | [protected] |
SmbiosTableXml | ( | const SmbiosTableXml & | source | ) | [private] |
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.
// 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;
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.
// 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;
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.
void setXmlFilePath | ( | std::string | ) |
Definition at line 254 of file SmbiosXml.cpp.
References SmbiosTableXml::doc, DOMBuilder, DOMDocument, xmlutils::getParser(), smbios::getSmbiosXmlDoc(), InitXML, SmbiosTableXml::parser, smbios::validateSmbiosXmlDoc(), SmbiosTableXml::xmlFile, xmlFreeDoc, xmlFreeParser, and SmbiosTableXml::xmlInitialized.
Referenced by SmbiosXmlFactoryImpl::makeNew(), and SmbiosTableXml::SmbiosTableXml().
int getTypeForString | ( | const std::string | ) | const |
const string getStringForType | ( | const | int | ) | const |
Definition at line 300 of file SmbiosXml.cpp.
References SmbiosTableXml::doc, and smbios::getStringForType().
const DOMDocument * getXmlDoc | ( | ) | const |
Definition at line 289 of file SmbiosXml.cpp.
References SmbiosTableXml::doc.
Referenced by smbios::getBits_FromItem(), smbios::getData_UsingXml(), and smbios::getString_FromItem().
SmbiosTableXml& operator= | ( | const SmbiosTableXml & | source | ) | [private] |
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.
// 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;
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.
// 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;
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.
void setXmlFilePath | ( | std::string | ) |
int getTypeForString | ( | const std::string | ) | const |
const std::string getStringForType | ( | const | int | ) | const |
const XML_NAMESPACE DOMDocument* getXmlDoc | ( | ) | const |
SmbiosTableXml& operator= | ( | const SmbiosTableXml & | source | ) | [private] |
SmbiosTable::iterator begin | ( | ) | [virtual, inherited] |
Standard iterator interface. Points to first table item.
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.
SmbiosTable::const_iterator begin | ( | ) | const [virtual, inherited] |
Standard iterator interface. Points to first table item.
Standard iterator interface. Points to first table item.
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 end | ( | ) | [virtual, inherited] |
Standard iterator interface. Points to one-past-the-last table item.
Standard iterator interface. Points to first table item.
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.
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.
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 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.
// 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;
Implements ISmbiosTable.
Definition at line 142 of file SmbiosTable.cpp.
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.
// 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;
Implements ISmbiosTable.
Definition at line 147 of file SmbiosTable.cpp.
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().
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.
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.
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.
void initializeWorkaround | ( | ) | const [virtual, inherited] |
Definition at line 208 of file SmbiosTable.cpp.
References SmbiosTable::clearItemCache(), SmbiosWorkaroundFactory::getFactory(), SmbiosTable::initializing, and SmbiosTable::workaround.
Referenced by SmbiosXmlFactoryImpl::makeNew(), and SmbiosFactoryImpl::makeNew().
void setStrictValidationMode | ( | bool | mode | ) | const [virtual, inherited] |
bool getStrictValidationMode | ( | ) | const [virtual, inherited] |
Definition at line 261 of file SmbiosTable.cpp.
References SmbiosTable::strictValidationMode.
Referenced by SmbiosTable::reReadTable().
ISmbiosItem * getCachedItem | ( | const void * | ) | const [virtual, inherited] |
Definition at line 95 of file SmbiosTable.cpp.
References _, and SmbiosTable::itemList.
Referenced by SmbiosTableIteratorBase::dereference().
void cacheItem | ( | const void * | , | |
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.
Implements ISmbiosTable.
Definition at line 242 of file SmbiosTable.cpp.
References SmbiosTable::itemList.
Referenced by SmbiosTable::initializeWorkaround(), SmbiosTable::reReadTable(), and SmbiosTable::~SmbiosTable().
ISmbiosItem & makeItem | ( | const void * | header = 0 |
) | const [protected, virtual, inherited] |
Definition at line 267 of file SmbiosTable.cpp.
References SmbiosTable::initializing, and SmbiosTable::workaround.
Referenced by SmbiosTableIteratorBase::dereference().
const void * nextSmbiosStruct | ( | const void * | current = 0 |
) | const [protected, inherited] |
Definition at line 280 of file SmbiosTable.cpp.
References smbios_table_entry_point::dmi, smbios_structure_header::length, SmbiosTable::smbiosBuffer, SmbiosTable::table_header, dmi_table_entry_point::table_length, and smbios_structure_header::type.
Referenced by SmbiosTableIteratorBase::incrementIterator().
friend class SmbiosTableIteratorBase [friend, inherited] |
Definition at line 152 of file SmbiosImpl.h.
std::string xmlFile [protected] |
Definition at line 57 of file xml_libxerces/SmbiosXmlImpl.h.
Referenced by SmbiosTableXml::setXmlFilePath(), and SmbiosTableXml::SmbiosTableXml().
XML_NAMESPACE DOMBuilder* parser [protected] |
Definition at line 61 of file xml_libxerces/SmbiosXmlImpl.h.
Referenced by SmbiosTableXml::setXmlFilePath(), and SmbiosTableXml::~SmbiosTableXml().
XML_NAMESPACE DOMDocument* doc [protected] |
Definition at line 66 of file xml_libxerces/SmbiosXmlImpl.h.
Referenced by smbios::getBits_FromItem(), smbios::getData_UsingXml(), smbios::getString_FromItem(), SmbiosTableXml::getStringForType(), SmbiosTableXml::getXmlDoc(), SmbiosTableXml::setXmlFilePath(), and SmbiosTableXml::~SmbiosTableXml().
bool xmlInitialized [protected] |
Definition at line 70 of file xml_libxerces/SmbiosXmlImpl.h.
Referenced by SmbiosTableXml::setXmlFilePath(), and SmbiosTableXml::~SmbiosTableXml().
XML_NAMESPACE DOMBuilder* parser [protected] |
Definition at line 61 of file xml_libxml2/SmbiosXmlImpl.h.
XML_NAMESPACE DOMDocument* doc [protected] |
Definition at line 66 of file xml_libxml2/SmbiosXmlImpl.h.
std::map< const void *, ISmbiosItem *> itemList [mutable, protected, inherited] |
Definition at line 165 of file SmbiosImpl.h.
Referenced by SmbiosTable::cacheItem(), SmbiosTable::clearItemCache(), and SmbiosTable::getCachedItem().
bool initializing [mutable, protected, inherited] |
Definition at line 166 of file SmbiosImpl.h.
Referenced by SmbiosTable::initializeWorkaround(), SmbiosTable::makeItem(), SmbiosTable::rawMode(), and SmbiosTable::reReadTable().
bool strictValidationMode [mutable, protected, inherited] |
Definition at line 167 of file SmbiosImpl.h.
Referenced by SmbiosTable::getStrictValidationMode(), and SmbiosTable::setStrictValidationMode().
std::auto_ptr<SmbiosWorkaroundTable> workaround [mutable, protected, inherited] |
Definition at line 168 of file SmbiosImpl.h.
Referenced by SmbiosTable::initializeWorkaround(), and SmbiosTable::makeItem().
const u8* smbiosBuffer [protected, inherited] |
Definition at line 169 of file SmbiosImpl.h.
Referenced by SmbiosTable::nextSmbiosStruct(), SmbiosTable::reReadTable(), and SmbiosTable::~SmbiosTable().
smbiosLowlevel::smbios_table_entry_point table_header [protected, inherited] |
Definition at line 170 of file SmbiosImpl.h.
Referenced by SmbiosTable::getNumberOfEntries(), SmbiosTable::getTableEPS(), SmbiosTable::nextSmbiosStruct(), SmbiosTable::reReadTable(), SmbiosTable::SmbiosTable(), and SmbiosTable::~SmbiosTable().