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 #include "OW_config.h"
00037 #include "OW_CIMClient.hpp"
00038 #include "OW_ClientCIMOMHandle.hpp"
00039 #include "OW_CIMClassEnumeration.hpp"
00040 #include "OW_CIMInstanceEnumeration.hpp"
00041 #include "OW_CIMValue.hpp"
00042 #include "OW_CIMQualifierEnumeration.hpp"
00043 #include "OW_CIMObjectPathEnumeration.hpp"
00044 #include "OW_CIMNameSpaceUtils.hpp"
00045 #include "OW_CIMException.hpp"
00046 #include "OW_CIMProtocolIFC.hpp"
00047
00048 namespace OW_NAMESPACE
00049 {
00050
00051 using namespace WBEMFlags;
00053 CIMClient::CIMClient(const String& url, const String& ns, const ClientAuthCBIFCRef& authCB)
00054 : m_namespace(ns)
00055 , m_ch(ClientCIMOMHandle::createFromURL(url, authCB))
00056 {
00057 }
00058 #if !defined(OW_DISABLE_INSTANCE_MANIPULATION) && !defined(OW_DISABLE_NAMESPACE_MANIPULATION)
00059
00060 void CIMClient::createNameSpace(const String& ns)
00061 {
00062 try
00063 {
00064 CIMNameSpaceUtils::createCIM_Namespace(*m_ch,ns);
00065 }
00066 catch (const CIMException& e)
00067 {
00068
00069 CIMNameSpaceUtils::create__Namespace(*m_ch,ns);
00070 }
00071 }
00073 void CIMClient::deleteNameSpace(const String& ns)
00074 {
00075 try
00076 {
00077 CIMNameSpaceUtils::deleteCIM_Namespace(*m_ch,ns);
00078 }
00079 catch (const CIMException& e)
00080 {
00081
00082 CIMNameSpaceUtils::delete__Namespace(*m_ch,ns);
00083 }
00084 }
00085 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00086
00087 StringArray
00088 CIMClient::enumNameSpaceE(EDeepFlag deep)
00089 {
00090 return CIMNameSpaceUtils::enum__Namespace(*m_ch, m_namespace, deep);
00091 }
00093 void
00094 CIMClient::enumNameSpace(StringResultHandlerIFC& result,
00095 EDeepFlag deep)
00096 {
00097 CIMNameSpaceUtils::enum__Namespace(*m_ch, m_namespace, result, deep);
00098 }
00100 StringArray
00101 CIMClient::enumCIM_NamespaceE()
00102 {
00103 try
00104 {
00105 return CIMNameSpaceUtils::enumCIM_Namespace(*m_ch);
00106 }
00107 catch (const CIMException& e)
00108 {
00109
00110 return CIMNameSpaceUtils::enum__Namespace(*m_ch, m_namespace, E_DEEP);
00111 }
00112 }
00114 void
00115 CIMClient::enumCIM_Namespace(StringResultHandlerIFC& result)
00116 {
00117 try
00118 {
00119 CIMNameSpaceUtils::enumCIM_Namespace(*m_ch, result);
00120 }
00121 catch (const CIMException& e)
00122 {
00123
00124 CIMNameSpaceUtils::enum__Namespace(*m_ch, m_namespace, result, E_DEEP);
00125 }
00126 }
00128 void
00129 CIMClient::enumClass(const String& className,
00130 CIMClassResultHandlerIFC& result,
00131 EDeepFlag deep,
00132 ELocalOnlyFlag localOnly,
00133 EIncludeQualifiersFlag includeQualifiers,
00134 EIncludeClassOriginFlag includeClassOrigin)
00135 {
00136 m_ch->enumClass(m_namespace, className, result, deep, localOnly,
00137 includeQualifiers, includeClassOrigin);
00138 }
00140 CIMClassEnumeration
00141 CIMClient::enumClassE(const String& className,
00142 EDeepFlag deep,
00143 ELocalOnlyFlag localOnly,
00144 EIncludeQualifiersFlag includeQualifiers,
00145 EIncludeClassOriginFlag includeClassOrigin)
00146 {
00147 return m_ch->enumClassE(m_namespace, className, deep, localOnly, includeQualifiers,
00148 includeClassOrigin);
00149 }
00151 void
00152 CIMClient::enumClassNames(
00153 const String& className,
00154 StringResultHandlerIFC& result,
00155 EDeepFlag deep)
00156 {
00157 m_ch->enumClassNames(m_namespace, className, result, deep);
00158 }
00160 StringEnumeration
00161 CIMClient::enumClassNamesE(
00162 const String& className,
00163 EDeepFlag deep)
00164 {
00165 return m_ch->enumClassNamesE(m_namespace, className, deep);
00166 }
00168 void
00169 CIMClient::enumInstances(
00170 const String& className,
00171 CIMInstanceResultHandlerIFC& result,
00172 EDeepFlag deep,
00173 ELocalOnlyFlag localOnly,
00174 EIncludeQualifiersFlag includeQualifiers,
00175 EIncludeClassOriginFlag includeClassOrigin,
00176 const StringArray* propertyList)
00177 {
00178 m_ch->enumInstances(m_namespace, className, result, deep, localOnly,
00179 includeQualifiers, includeClassOrigin, propertyList);
00180 }
00182 CIMInstanceEnumeration
00183 CIMClient::enumInstancesE(
00184 const String& className,
00185 EDeepFlag deep,
00186 ELocalOnlyFlag localOnly,
00187 EIncludeQualifiersFlag includeQualifiers,
00188 EIncludeClassOriginFlag includeClassOrigin,
00189 const StringArray* propertyList)
00190 {
00191 return m_ch->enumInstancesE(m_namespace, className, deep, localOnly,
00192 includeQualifiers, includeClassOrigin, propertyList);
00193 }
00195 void
00196 CIMClient::enumInstanceNames(
00197 const String& className,
00198 CIMObjectPathResultHandlerIFC& result)
00199 {
00200 m_ch->enumInstanceNames(m_namespace, className, result);
00201 }
00203 CIMObjectPathEnumeration
00204 CIMClient::enumInstanceNamesE(
00205 const String& className)
00206 {
00207 return m_ch->enumInstanceNamesE(m_namespace, className);
00208 }
00210 CIMClass
00211 CIMClient::getClass(
00212 const String& className,
00213 ELocalOnlyFlag localOnly,
00214 EIncludeQualifiersFlag includeQualifiers,
00215 EIncludeClassOriginFlag includeClassOrigin,
00216 const StringArray* propertyList)
00217 {
00218 return m_ch->getClass(m_namespace, className, localOnly,
00219 includeQualifiers, includeClassOrigin, propertyList);
00220 }
00222 CIMInstance
00223 CIMClient::getInstance(
00224 const CIMObjectPath& instanceName,
00225 ELocalOnlyFlag localOnly,
00226 EIncludeQualifiersFlag includeQualifiers,
00227 EIncludeClassOriginFlag includeClassOrigin,
00228 const StringArray* propertyList)
00229 {
00230 return m_ch->getInstance(m_namespace, instanceName, localOnly,
00231 includeQualifiers, includeClassOrigin, propertyList);
00232 }
00234 CIMValue
00235 CIMClient::invokeMethod(
00236 const CIMObjectPath& path,
00237 const String& methodName,
00238 const CIMParamValueArray& inParams,
00239 CIMParamValueArray& outParams)
00240 {
00241 return m_ch->invokeMethod(m_namespace, path, methodName, inParams, outParams);
00242 }
00244 CIMQualifierType
00245 CIMClient::getQualifierType(const String& qualifierName)
00246 {
00247 return m_ch->getQualifierType(m_namespace, qualifierName);
00248 }
00249 #ifndef OW_DISABLE_QUALIFIER_DECLARATION
00250
00251 void
00252 CIMClient::setQualifierType(const CIMQualifierType& qualifierType)
00253 {
00254 m_ch->setQualifierType(m_namespace, qualifierType);
00255 }
00257 void
00258 CIMClient::deleteQualifierType(const String& qualName)
00259 {
00260 m_ch->deleteQualifierType(m_namespace, qualName);
00261 }
00263 void
00264 CIMClient::enumQualifierTypes(
00265 CIMQualifierTypeResultHandlerIFC& result)
00266 {
00267 m_ch->enumQualifierTypes(m_namespace, result);
00268 }
00270 CIMQualifierTypeEnumeration
00271 CIMClient::enumQualifierTypesE()
00272 {
00273 return m_ch->enumQualifierTypesE(m_namespace);
00274 }
00275 #endif // #ifndef OW_DISABLE_QUALIFIER_DECLARATION
00276 #ifndef OW_DISABLE_SCHEMA_MANIPULATION
00277
00278 void
00279 CIMClient::modifyClass(const CIMClass& cimClass)
00280 {
00281 m_ch->modifyClass(m_namespace, cimClass);
00282 }
00284 void
00285 CIMClient::createClass(const CIMClass& cimClass)
00286 {
00287 m_ch->createClass(m_namespace, cimClass);
00288 }
00290 void
00291 CIMClient::deleteClass(const String& className)
00292 {
00293 m_ch->deleteClass(m_namespace, className);
00294 }
00295 #endif // #ifndef OW_DISABLE_SCHEMA_MANIPULATION
00296 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00297
00298 void
00299 CIMClient::modifyInstance(const CIMInstance& modifiedInstance,
00300 EIncludeQualifiersFlag includeQualifiers,
00301 StringArray* propertyList)
00302 {
00303 m_ch->modifyInstance(m_namespace, modifiedInstance, includeQualifiers,
00304 propertyList);
00305 }
00307 CIMObjectPath
00308 CIMClient::createInstance(const CIMInstance& instance)
00309 {
00310 return m_ch->createInstance(m_namespace, instance);
00311 }
00313 void
00314 CIMClient::deleteInstance(const CIMObjectPath& path)
00315 {
00316 m_ch->deleteInstance(m_namespace, path);
00317 }
00318 #if !defined(OW_DISABLE_PROPERTY_OPERATIONS)
00319
00320 void
00321 CIMClient::setProperty(
00322 const CIMObjectPath& instanceName,
00323 const String& propertyName,
00324 const CIMValue& newValue)
00325 {
00326 m_ch->setProperty(m_namespace, instanceName, propertyName, newValue);
00327 }
00328 #endif // #if !defined(OW_DISABLE_PROPERTY_OPERATIONS)
00329 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00330 #if !defined(OW_DISABLE_PROPERTY_OPERATIONS)
00331
00332 CIMValue
00333 CIMClient::getProperty(
00334 const CIMObjectPath& instanceName,
00335 const String& propertyName)
00336 {
00337 return m_ch->getProperty(m_namespace, instanceName, propertyName);
00338 }
00339 #endif // #if !defined(OW_DISABLE_PROPERTY_OPERATIONS)
00340 #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00341
00342 void
00343 CIMClient::associatorNames(
00344 const CIMObjectPath& objectName,
00345 CIMObjectPathResultHandlerIFC& result,
00346 const String& assocClass,
00347 const String& resultClass,
00348 const String& role,
00349 const String& resultRole)
00350 {
00351 m_ch->associatorNames(m_namespace, objectName, result,
00352 assocClass, resultClass, role, resultRole);
00353 }
00355 CIMObjectPathEnumeration
00356 CIMClient::associatorNamesE(
00357 const CIMObjectPath& objectName,
00358 const String& assocClass,
00359 const String& resultClass,
00360 const String& role,
00361 const String& resultRole)
00362 {
00363 return m_ch->associatorNamesE(m_namespace, objectName,
00364 assocClass, resultClass, role, resultRole);
00365 }
00367 void
00368 CIMClient::associators(
00369 const CIMObjectPath& path,
00370 CIMInstanceResultHandlerIFC& result,
00371 const String& assocClass,
00372 const String& resultClass,
00373 const String& role,
00374 const String& resultRole,
00375 EIncludeQualifiersFlag includeQualifiers,
00376 EIncludeClassOriginFlag includeClassOrigin,
00377 const StringArray* propertyList)
00378 {
00379 m_ch->associators(m_namespace, path, result,
00380 assocClass, resultClass,
00381 role, resultRole, includeQualifiers, includeClassOrigin, propertyList);
00382 }
00384 CIMInstanceEnumeration
00385 CIMClient::associatorsE(
00386 const CIMObjectPath& path,
00387 const String& assocClass,
00388 const String& resultClass,
00389 const String& role,
00390 const String& resultRole,
00391 EIncludeQualifiersFlag includeQualifiers,
00392 EIncludeClassOriginFlag includeClassOrigin,
00393 const StringArray* propertyList)
00394 {
00395 return m_ch->associatorsE(m_namespace, path, assocClass,
00396 resultClass, role, resultRole, includeQualifiers,
00397 includeClassOrigin, propertyList);
00398 }
00400 void
00401 CIMClient::associatorsClasses(
00402 const CIMObjectPath& path,
00403 CIMClassResultHandlerIFC& result,
00404 const String& assocClass,
00405 const String& resultClass,
00406 const String& role,
00407 const String& resultRole,
00408 EIncludeQualifiersFlag includeQualifiers,
00409 EIncludeClassOriginFlag includeClassOrigin,
00410 const StringArray* propertyList)
00411 {
00412 m_ch->associatorsClasses(m_namespace, path, result, assocClass,
00413 resultClass, role, resultRole, includeQualifiers, includeClassOrigin,
00414 propertyList);
00415 }
00417 CIMClassEnumeration
00418 CIMClient::associatorsClassesE(
00419 const CIMObjectPath& path,
00420 const String& assocClass,
00421 const String& resultClass,
00422 const String& role,
00423 const String& resultRole,
00424 EIncludeQualifiersFlag includeQualifiers,
00425 EIncludeClassOriginFlag includeClassOrigin,
00426 const StringArray* propertyList)
00427 {
00428 return m_ch->associatorsClassesE(m_namespace, path, assocClass,
00429 resultClass, role, resultRole, includeQualifiers, includeClassOrigin,
00430 propertyList);
00431 }
00433 void
00434 CIMClient::referenceNames(
00435 const CIMObjectPath& path,
00436 CIMObjectPathResultHandlerIFC& result,
00437 const String& resultClass,
00438 const String& role)
00439 {
00440 m_ch->referenceNames(m_namespace, path, result, resultClass, role);
00441 }
00443 CIMObjectPathEnumeration
00444 CIMClient::referenceNamesE(
00445 const CIMObjectPath& path,
00446 const String& resultClass,
00447 const String& role)
00448 {
00449 return m_ch->referenceNamesE(m_namespace, path, resultClass, role);
00450 }
00452 void
00453 CIMClient::references(
00454 const CIMObjectPath& path,
00455 CIMInstanceResultHandlerIFC& result,
00456 const String& resultClass,
00457 const String& role,
00458 EIncludeQualifiersFlag includeQualifiers,
00459 EIncludeClassOriginFlag includeClassOrigin,
00460 const StringArray* propertyList)
00461 {
00462 m_ch->references(m_namespace, path, result, resultClass,
00463 role, includeQualifiers, includeClassOrigin, propertyList);
00464 }
00466 CIMInstanceEnumeration
00467 CIMClient::referencesE(
00468 const CIMObjectPath& path,
00469 const String& resultClass,
00470 const String& role,
00471 EIncludeQualifiersFlag includeQualifiers,
00472 EIncludeClassOriginFlag includeClassOrigin,
00473 const StringArray* propertyList)
00474 {
00475 return m_ch->referencesE(m_namespace, path, resultClass, role,
00476 includeQualifiers, includeClassOrigin, propertyList);
00477 }
00479 void
00480 CIMClient::referencesClasses(
00481 const CIMObjectPath& path,
00482 CIMClassResultHandlerIFC& result,
00483 const String& resultClass,
00484 const String& role,
00485 EIncludeQualifiersFlag includeQualifiers,
00486 EIncludeClassOriginFlag includeClassOrigin,
00487 const StringArray* propertyList)
00488 {
00489 m_ch->referencesClasses(m_namespace, path, result, resultClass,
00490 role, includeQualifiers, includeClassOrigin, propertyList);
00491 }
00493 CIMClassEnumeration
00494 CIMClient::referencesClassesE(
00495 const CIMObjectPath& path,
00496 const String& resultClass,
00497 const String& role,
00498 EIncludeQualifiersFlag includeQualifiers,
00499 EIncludeClassOriginFlag includeClassOrigin,
00500 const StringArray* propertyList)
00501 {
00502 return m_ch->referencesClassesE(m_namespace, path, resultClass, role,
00503 includeQualifiers, includeClassOrigin, propertyList);
00504 }
00505 #endif // #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00506
00507 void
00508 CIMClient::execQuery(
00509 CIMInstanceResultHandlerIFC& result,
00510 const String& query,
00511 const String& queryLanguage)
00512 {
00513 m_ch->execQuery(m_namespace, result, query, queryLanguage);
00514 }
00516 CIMInstanceEnumeration
00517 CIMClient::execQueryE(
00518 const String& query,
00519 const String& queryLanguage)
00520 {
00521 return m_ch->execQueryE(m_namespace, query, queryLanguage);
00522 }
00524 bool
00525 CIMClient::setHTTPRequestHeader(const String& hdrName, const String& hdrValue)
00526 {
00527 return m_ch->setHTTPRequestHeader(hdrName, hdrValue);
00528 }
00530 bool
00531 CIMClient::getHTTPResponseHeader(const String& hdrName, String& valueOut) const
00532 {
00533 return m_ch->getHTTPResponseHeader(hdrName, valueOut);
00534 }
00535
00536 }
00537