19 #ifndef SMBIOSINTERFACE_H
20 #define SMBIOSINTERFACE_H
53 class SmbiosTableIterator;
54 class ConstSmbiosTableIterator;
146 virtual iterator
begin () = 0;
149 virtual const_iterator
begin ()
const = 0;
153 virtual iterator
end () = 0;
158 virtual const_iterator
end ()
const = 0;
180 virtual const_iterator
operator[](
const int )
const = 0;
190 virtual void rawMode(
bool m =
true)
const = 0;
229 virtual std::ostream &
streamify(std::ostream & cout )
const = 0;
248 virtual std::auto_ptr<const ISmbiosItem>
clone()
const = 0;
249 virtual std::auto_ptr<ISmbiosItem>
clone() = 0;
296 virtual void getData(
unsigned int offset,
u8 *out,
size_t size )
const = 0;
323 virtual std::ostream &
streamify( std::ostream & cout )
const = 0;
336 void *
getBits_FromItem(
const ISmbiosItem &item,
unsigned int offset,
void *out,
unsigned int lsb=0,
unsigned int msb=0 );
337 bool isBitSet(
const ISmbiosItem *itemPtr,
unsigned int offset,
unsigned int bitToTest);
342 item.
getData(offset, &out,
sizeof(R));
381 public std::iterator < std::forward_iterator_tag,
ISmbiosItem >
390 reference operator * ();
391 pointer operator -> ();
397 public SmbiosTableIteratorBase,
398 public std::iterator < std::forward_iterator_tag, const ISmbiosItem >
409 reference operator * () const;
410 pointer operator -> () const;
418 std::ostream & operator << (std::ostream & cout, const
ISmbiosTable & item);
419 std::ostream & operator << (std::ostream & cout, const ISmbiosItem & item);
425 #include "smbios/config/abi_suffix.hpp"
value_type & reference
Definition: ISmbios.h:402
virtual iterator end()=0
Standard iterator interface. Points to one-past-the-last table item.
virtual void clearItemCache() const =0
Clears out any cached SmbiosItem entries in the cache.
Interface definition for Smbios Table operations.
Definition: ISmbios.h:117
virtual std::auto_ptr< const ISmbiosItem > clone() const =0
virtual const u8 * getBufferCopy(size_t &length) const =0
virtual iterator begin()=0
Standard iterator interface. Points to first table item.
u8 getItemLength(const ISmbiosItem &item)
virtual ISmbiosTable * makeNew()=0
Create a new ISmbiosTable object that the caller must delete. (NOT RECOMMENDED)
virtual u8 getLength() const =0
u32 getU32_FromItem(const ISmbiosItem &item, unsigned int offset)
virtual size_t getBufferSize() const =0
Returns the buffer size of the item.
value_type & reference
Definition: ISmbios.h:385
virtual int getNumberOfEntries() const =0
Returns the number of table items, per SMBIOS table header.
const ISmbiosItem value_type
Definition: ISmbios.h:401
virtual std::ostream & streamify(std::ostream &cout) const =0
virtual ~SmbiosTableIteratorBase()
std::ptrdiff_t difference_type
Definition: ISmbios.h:358
Interface definition for Smbios Item operations.
Definition: ISmbios.h:241
Definition: IException.h:43
Definition: ISmbios.h:379
virtual std::ostream & streamify(std::ostream &cout) const =0
Used by operator << (std::ostream & cout, const ISmbiosTable & ) to.
virtual const char * getStringByStringNumber(u8) const =0
Definition: ISmbios.h:313
AbstractFactory that produces ISmbiosTable objects.
Definition: ISmbios.h:71
virtual ISmbiosTable * getSingleton()=0
Recommended way to get an ISmbiosTable object.
u8 getItemType(const ISmbiosItem &item)
std::forward_iterator_tag iterator_category
Definition: ISmbios.h:357
const ISmbiosTable * table
Definition: ISmbios.h:375
bool isBitSet(const ISmbiosItem *itemPtr, unsigned int offset, unsigned int bitToTest)
SmbiosTableIteratorBase(const ISmbiosTable *initialTable=0, int typeToMatch=-1)
u16 getU16_FromItem(const ISmbiosItem &item, unsigned int offset)
friend std::ostream & operator<<(std::ostream &cout, const ISmbiosTable &item)
Definition: SmbiosLowLevel.h:59
const ISmbiosItem & dereference() const
Definition: ISmbios.h:396
ConstSmbiosTableIterator const_iterator
Definition: ISmbios.h:123
virtual void getData(unsigned int offset, u8 *out, size_t size) const =0
SmbiosTableIterator iterator
Definition: ISmbios.h:122
int matchType
Definition: ISmbios.h:374
virtual const ISmbiosItem & getSmbiosItem(const u8 *current) const =0
value_type * pointer
Definition: ISmbios.h:386
Definition: ISmbios.h:312
unsigned int u32
Definition: types.h:35
DECLARE_EXCEPTION(NotImplemented)
R & getData(const ISmbiosItem &item, unsigned int offset, R &out)
Definition: ISmbios.h:340
void * getBits_FromItem(const ISmbiosItem &item, unsigned int offset, void *out, unsigned int lsb=0, unsigned int msb=0)
const u8 * current
Definition: ISmbios.h:376
u64 getU64_FromItem(const ISmbiosItem &item, unsigned int offset)
ISmbiosItem value_type
Definition: ISmbios.h:384
Iterator base class for ISmbiosTable objects.
Definition: ISmbios.h:354
virtual smbiosLowlevel::smbios_table_entry_point getTableEPS() const =0
Returns the table entry point structure.
unsigned short u16
Definition: types.h:31
DECLARE_EXCEPTION_EX(ParameterException, smbios, SmbiosException)
unsigned char u8
Definition: types.h:27
virtual u16 getHandle() const =0
u8 getU8_FromItem(const ISmbiosItem &item, unsigned int offset)
value_type * pointer
Definition: ISmbios.h:403
virtual const u8 * nextSmbiosStruct(const u8 *current=0) const =0
virtual u8 getType() const =0
SmbiosFactory()
Use getFactory() to get a factory.
Base class for all Abstract Factories.
Definition: IFactory.h:39
static SmbiosFactory * getFactory()
Create a factory object that you can use to create ISmbiosTable objects.
u16 getItemHandle(const ISmbiosItem &item)
Definition: ISmbios.h:314
const char * getString_FromItem(const ISmbiosItem &item, unsigned int offset)
virtual void rawMode(bool m=true) const =0
Disables all workarounds for new items created by the table.
friend std::ostream & operator<<(std::ostream &cout, const ISmbiosItem &item)
virtual iterator operator[](const int)=0
Standard indexed access by integer item type.
SmbiosTableIteratorBase & operator=(const SmbiosTableIteratorBase &)
Definition: ISmbios.h:311