00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef IFACTORY_H_INCLUDED
00021 #define IFACTORY_H_INCLUDED
00022
00023
00024 #include "smbios/compat.h"
00025
00026 #include <string>
00027
00028
00029 #include "smbios/types.h"
00030
00031
00032 #include "smbios/config/abi_prefix.hpp"
00033
00034 namespace factory
00035 {
00037
00039 class IFactory
00040 {
00041 public:
00042 virtual ~IFactory();
00043
00044
00045 virtual void setParameter( const std::string name, const std::string value) = 0;
00046 virtual void setParameter( const std::string name, const u32 value) = 0;
00047 virtual void setMode( const int mode ) = 0;
00048 virtual void reset() = 0;
00049
00050
00051 virtual std::string getParameterString( const std::string name ) const = 0;
00052 virtual u32 getParameterNum( const std::string name ) const = 0;
00053 virtual int getMode( ) const = 0;
00054
00055
00056
00057 enum { AutoDetectMode, UnitTestMode };
00058 enum { defaultMode = AutoDetectMode };
00059 protected:
00060 IFactory();
00061 };
00062
00063 }
00064
00065
00066 #include "smbios/config/abi_suffix.hpp"
00067
00068 #endif