00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00036 #ifndef OWBI1_CIMBASE_HPP_
00037 #define OWBI1_CIMBASE_HPP_
00038 #include "OWBI1_config.h"
00039 #include "OWBI1_Types.hpp"
00040 #include "OWBI1_SerializableIFC.hpp"
00041 #include "OWBI1_CommonFwd.hpp"
00042 #include <iosfwd>
00043 
00044 namespace OWBI1
00045 {
00046 
00052 class OWBI1_OWBI1PROVIFC_API CIMBase : public SerializableIFC
00053 {
00054 public:
00055    virtual ~CIMBase();
00060    virtual void setNull() = 0;
00064    virtual String toString() const = 0;
00068    virtual String toMOF() const = 0;
00069 
00070    enum EErrorCodes
00071    {
00072       E_UNEXPECTED_SIGNATURE,
00073       E_UNKNOWN_VERSION
00074    };
00075 
00090    static void readSig(std::istream& istrm, const char* const sig);
00091 
00118    static UInt32 readSig(std::istream& istrm, const char* const sig,
00119       const char* const verSig, UInt32 maxVersion);
00120 
00129    static void writeSig(std::ostream& ostrm, const char* const sig);
00130 
00138    static void writeSig(std::ostream& ostrm, const char* const sig,
00139       UInt32 version);
00140 
00141 };
00142 OWBI1_OWBI1PROVIFC_API std::ostream& operator<<(std::ostream& ostr, const CIMBase& cb);
00144 
00145 
00146 #define OWBI1_CIMCLASSSIG              "C"   // OWBI1_CIMClass
00147 #define OWBI1_CIMINSTANCESIG           "I"   // OWBI1_CIMInstance
00148 #define OWBI1_CIMMETHODSIG             "M"   // OWBI1_CIMMethod
00149 #define OWBI1_CIMPARAMETERSIG          "P"   // OWBI1_CIMParameter
00150 #define OWBI1_CIMPARAMVALSIG           "A"   // OWBI1_CIMParamValue
00151 #define OWBI1_CIMPROPERTYSIG           "R"   // OWBI1_CIMProperty
00152 #define OWBI1_CIMQUALIFIERSIG          "Q"   // OWBI1_CIMQualifier
00153 #define OWBI1_CIMQUALIFIERTYPESIG         "T"   // OWBI1_CIMQualifierType
00154 #define OWBI1_CIMDATATYPESIG           "D"   // OWBI1_CIMDataType
00155 #define OWBI1_CIMFLAVORSIG             "F"   // OWBI1_CIMFlavor
00156 #define OWBI1_CIMNAMESPACESIG          "N"   // OWBI1_CIMNameSpace
00157 #define OWBI1_CIMOBJECTPATHSIG            "O"   // OWBI1_CIMObjectPath
00158 #define OWBI1_CIMSCOPESIG              "S"   // OWBI1_CIMScope
00159 #define OWBI1_CIMVALUESIG              "V"   // OWBI1_CIMValue
00160 #define OWBI1_CIMURLSIG             "U"   // OWBI1_CIMUrl
00161 #define OWBI1_INTERNNAMESPACESIG       "E"   // Internval namespace class
00162 #define OWBI1_CIMPARAMVALUESIG            "L"   // OWBI1_CIMParamValue
00163 
00165 
00166 
00167 #define OWBI1_CIMCLASSSIG_V               "c"   // OWBI1_CIMClass
00168 #define OWBI1_CIMINSTANCESIG_V            "i"   // OWBI1_CIMInstance
00169 #define OWBI1_CIMMETHODSIG_V           "m"   // OWBI1_CIMMethod
00170 #define OWBI1_CIMPARAMETERSIG_V        "p"   // OWBI1_CIMParameter
00171 #define OWBI1_CIMPARAMVALSIG_V            "a"   // OWBI1_CIMParamValue
00172 #define OWBI1_CIMPROPERTYSIG_V            "r"   // OWBI1_CIMProperty
00173 #define OWBI1_CIMQUALIFIERSIG_V        "q"   // OWBI1_CIMQualifier
00174 #define OWBI1_CIMQUALIFIERTYPESIG_V    "t"   // OWBI1_CIMQualifierType
00175 #define OWBI1_CIMDATATYPESIG_V            "d"   // OWBI1_CIMDataType
00176 #define OWBI1_CIMFLAVORSIG_V           "f"   // OWBI1_CIMFlavor
00177 #define OWBI1_CIMNAMESPACESIG_V        "n"   // OWBI1_CIMNameSpace
00178 #define OWBI1_CIMOBJECTPATHSIG_V       "o"   // OWBI1_CIMObjectPath
00179 #define OWBI1_CIMSCOPESIG_V            "s"   // OWBI1_CIMScope
00180 #define OWBI1_CIMVALUESIG_V            "v"   // OWBI1_CIMValue
00181 #define OWBI1_CIMURLSIG_V              "u"   // OWBI1_CIMUrl
00182 #define OWBI1_INTERNNAMESPACESIG_V        "e"   // Internval namespace class
00183 #define OWBI1_CIMPARAMVALUESIG_V       "l"   // OWBI1_CIMParamValue
00184 
00185 
00186 } 
00187 
00188 #endif   // OWBI1_CIMBASE_HPP_