00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef ISMBIOSXML_H
00020 #define ISMBIOSXML_H
00021
00022
00023
00024 #define LIBSMBIOS_NEED_SMBIOSXML
00025
00026
00027 #include "smbios/compat.h"
00028
00029 #include "smbios/ISmbios.h"
00030
00031
00032 #include "smbios/config/abi_prefix.hpp"
00033
00034 namespace smbios
00035 {
00036 class SmbiosXmlFactory: public virtual SmbiosFactory
00037 {
00038 public:
00039 static SmbiosFactory *getFactory();
00040 virtual ~SmbiosXmlFactory() throw();
00041 };
00042
00043 template <class R>
00044 R &getData(const ISmbiosItem &item, const std::string field, R &out)
00045 {
00046 getData_FromItem(field, &out, sizeof(R));
00047 return out;
00048 }
00049
00050 u8 getU8_FromItem(const ISmbiosItem &item, std::string field);
00051 u16 getU16_FromItem(const ISmbiosItem &item, std::string field);
00052 u32 getU32_FromItem(const ISmbiosItem &item, std::string field);
00053 u64 getU64_FromItem(const ISmbiosItem &item, std::string field);
00054 const char *getString_FromItem(const ISmbiosItem &item, std::string field);
00055 void *getBits_FromItem(const ISmbiosItem &item, std::string field, std::string bitField, void *out);
00056
00057
00058 void getData_FromItem(std::string field, void *out, size_t sz);
00059
00060
00061 std::ostream & toXmlString(const ISmbiosTable &, std::ostream &);
00062 }
00063
00064
00065 #include "smbios/config/abi_suffix.hpp"
00066
00067 #endif
00068