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 OW_INSTANCEREPOSITORY_HPP_INCLUDE_GUARD_
00037 #define OW_INSTANCEREPOSITORY_HPP_INCLUDE_GUARD_
00038 #include "OW_config.h"
00039 #include "OW_GenericHDBRepository.hpp"
00040 #include "OW_CIMFwd.hpp"
00041 #include "OW_ResultHandlerIFC.hpp"
00042 #include "OW_WBEMFlags.hpp"
00043
00044 namespace OW_NAMESPACE
00045 {
00046
00047 class OW_HDB_API InstanceRepository : public GenericHDBRepository
00048 {
00049 public:
00053 InstanceRepository() {}
00054
00055 void getCIMInstances(
00056 const String& ns,
00057 const String& className,
00058 const CIMClass& requestedClass,
00059 const CIMClass& theClass,
00060 CIMInstanceResultHandlerIFC& result,
00061 WBEMFlags::EDeepFlag deep, WBEMFlags::ELocalOnlyFlag localOnly, WBEMFlags::EIncludeQualifiersFlag includeQualifiers, WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00062 const StringArray* propertyList=NULL);
00063 void getInstanceNames(const String& ns, const CIMClass& theClass,
00064 CIMObjectPathResultHandlerIFC& result);
00076 CIMInstance getCIMInstance(const String& ns,
00077 const CIMObjectPath& instanceName,
00078 const CIMClass& theClass, WBEMFlags::ELocalOnlyFlag localOnly,
00079 WBEMFlags::EIncludeQualifiersFlag includeQualifiers, WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00080 const StringArray* propertyList);
00081 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00082
00091 void deleteInstance(const String& ns, const CIMObjectPath& cop,
00092 const CIMClass& theClass);
00104 void createInstance(const String& ns, const CIMClass& theClass,
00105 const CIMInstance& ci);
00116 void modifyInstance(const String& ns, const CIMObjectPath& cop,
00117 const CIMClass& theClass, const CIMInstance& ci,
00118 const CIMInstance& oldInst,
00119 WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00120 const StringArray* propertyList);
00126 bool classHasInstances(const CIMObjectPath& classPath);
00127 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00128
00129 #if !defined(OW_DISABLE_INSTANCE_MANIPULATION) && !defined(OW_DISABLE_NAMESPACE_MANIPULATION)
00130
00134 void deleteNameSpace(const String& nsName);
00142 virtual int createNameSpace(const String& ns);
00143 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00144 #ifndef OW_DISABLE_SCHEMA_MANIPULATION
00145
00151 void createClass(const String& ns, const CIMClass& cimClass);
00157 void deleteClass(const String& ns, const String& className);
00158 #endif // #ifndef OW_DISABLE_SCHEMA_MANIPULATION
00159 private:
00160 String makeClassKey(const String& ns, const String& className);
00161 String makeInstanceKey(const String& ns, const CIMObjectPath& cop,
00162 const CIMClass& theClass);
00163 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00164 void _removeDuplicatedQualifiers(CIMInstance& inst, const CIMClass& theClass);
00165 #endif
00166 };
00167
00168 }
00169
00170 #endif