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;
176 virtual iterator operator[](
const int ) = 0;
180 virtual const_iterator operator[](
const int )
const = 0;
190 virtual void rawMode(
bool m =
true)
const = 0;
210 virtual void clearItemCache()
const = 0;
213 virtual int getNumberOfEntries ()
const = 0;
220 virtual const ISmbiosItem & getSmbiosItem (
const u8 *current)
const = 0;
222 virtual const u8 * nextSmbiosStruct (
const u8 * current = 0)
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;
256 virtual u8 getType()
const = 0;
263 virtual u8 getLength()
const = 0;
270 virtual u16 getHandle()
const = 0;
296 virtual void getData(
unsigned int offset,
u8 *out,
size_t size )
const = 0;
298 virtual const u8* getBufferCopy(
size_t &length)
const = 0;
302 virtual size_t getBufferSize()
const = 0;
308 virtual const char *getStringByStringNumber (
u8)
const = 0;
323 virtual std::ostream & streamify( std::ostream & cout )
const = 0;
342 item.
getData(offset, &out,
sizeof(R));
366 void incrementIterator ();
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" std::ostream & operator<<(std::ostream &cout, const ISmbiosTable &item)
value_type & reference
Definition: ISmbios.h:402
Interface definition for Smbios Table operations.
Definition: ISmbios.h:117
u8 getItemLength(const ISmbiosItem &item)
virtual ISmbiosTable * makeNew()=0
Create a new ISmbiosTable object that the caller must delete. (NOT RECOMMENDED)
u32 getU32_FromItem(const ISmbiosItem &item, unsigned int offset)
value_type & reference
Definition: ISmbios.h:385
const ISmbiosItem value_type
Definition: ISmbios.h:401
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
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
bool isBitSet(const ISmbiosItem *itemPtr, unsigned int offset, unsigned int bitToTest)
u16 getU16_FromItem(const ISmbiosItem &item, unsigned int offset)
Definition: SmbiosLowLevel.h:59
Definition: ISmbios.h:396
ConstSmbiosTableIterator const_iterator
Definition: ISmbios.h:123
SmbiosTableIterator iterator
Definition: ISmbios.h:122
value_type * pointer
Definition: ISmbios.h:386
virtual void getData(unsigned int offset, u8 *out, size_t size) const =0
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)
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
unsigned short u16
Definition: types.h:31
DECLARE_EXCEPTION_EX(ParameterException, smbios, SmbiosException)
unsigned char u8
Definition: types.h:27
u8 getU8_FromItem(const ISmbiosItem &item, unsigned int offset)
value_type * pointer
Definition: ISmbios.h:403
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)
const char * getString_FromItem(const ISmbiosItem &item, unsigned int offset)