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 
00035 #include "OW_config.h"
00036 #include "OW_CppProxyProvider.hpp"
00037 #include "OW_CIMValue.hpp"
00038 #include "OW_CIMClass.hpp"
00039 #include "OW_CIMInstance.hpp"
00040 #include "OW_CIMObjectPath.hpp"
00041 
00042 namespace OW_NAMESPACE
00043 {
00044 
00045 using namespace WBEMFlags;
00046 #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00047 
00048 CppAssociatorProviderProxy::CppAssociatorProviderProxy(
00049    CppAssociatorProviderIFCRef pProv) :
00050    AssociatorProviderIFC(), m_pProv(pProv)
00051 {
00052 }
00054 void
00055 CppAssociatorProviderProxy::associators(
00056       const ProviderEnvironmentIFCRef& env,
00057       CIMInstanceResultHandlerIFC& result,
00058       const String& ns,
00059       const CIMObjectPath& objectName,
00060       const String& assocClass,
00061       const String& resultClass,
00062       const String& role,
00063       const String& resultRole,
00064       EIncludeQualifiersFlag includeQualifiers,
00065       EIncludeClassOriginFlag includeClassOrigin,
00066       const StringArray* propertyList)
00067 {
00068    m_pProv->updateAccessTime();
00069    m_pProv->associators(env, result, ns, objectName, assocClass, resultClass, role,
00070       resultRole, includeQualifiers, includeClassOrigin, propertyList);
00071 }
00073 void
00074 CppAssociatorProviderProxy::associatorNames(
00075       const ProviderEnvironmentIFCRef& env,
00076       CIMObjectPathResultHandlerIFC& result,
00077       const String& ns,
00078       const CIMObjectPath& objectName,
00079       const String& assocClass,
00080       const String& resultClass,
00081       const String& role,
00082       const String& resultRole)
00083 {
00084    m_pProv->updateAccessTime();
00085    m_pProv->associatorNames(env, result, ns, objectName, assocClass, resultClass,
00086          role, resultRole);
00087 }
00089 void
00090 CppAssociatorProviderProxy::references(
00091       const ProviderEnvironmentIFCRef& env,
00092       CIMInstanceResultHandlerIFC& result,
00093       const String& ns,
00094       const CIMObjectPath& objectName,
00095       const String& resultClass,
00096       const String& role,
00097       EIncludeQualifiersFlag includeQualifiers,
00098       EIncludeClassOriginFlag includeClassOrigin,
00099       const StringArray* propertyList)
00100 {
00101    m_pProv->updateAccessTime();
00102    m_pProv->references(env, result, ns, objectName, resultClass, role,
00103          includeQualifiers, includeClassOrigin, propertyList);
00104 }
00106 void
00107 CppAssociatorProviderProxy::referenceNames(
00108       const ProviderEnvironmentIFCRef& env,
00109       CIMObjectPathResultHandlerIFC& result,
00110       const String& ns,
00111       const CIMObjectPath& objectName,
00112       const String& resultClass,
00113       const String& role)
00114 {
00115    m_pProv->updateAccessTime();
00116    m_pProv->referenceNames(env, result, ns, objectName, resultClass, role);
00117 }
00118 #endif // #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00119 
00120 CppInstanceProviderProxy::CppInstanceProviderProxy(
00121       CppInstanceProviderIFCRef pProv) :
00122    InstanceProviderIFC(), m_pProv(pProv)
00123 {
00124 }
00126 void
00127 CppInstanceProviderProxy::enumInstanceNames(
00128       const ProviderEnvironmentIFCRef& env,
00129       const String& ns,
00130       const String& className,
00131       CIMObjectPathResultHandlerIFC& result,
00132       const CIMClass& cimClass)
00133 {
00134    m_pProv->updateAccessTime();
00135    return m_pProv->enumInstanceNames(env, ns, className, result, cimClass);
00136 }
00138 void
00139 CppInstanceProviderProxy::enumInstances(
00140       const ProviderEnvironmentIFCRef& env,
00141       const String& ns,
00142       const String& className,
00143       CIMInstanceResultHandlerIFC& result,
00144       ELocalOnlyFlag localOnly, 
00145       EDeepFlag deep, 
00146       EIncludeQualifiersFlag includeQualifiers, 
00147       EIncludeClassOriginFlag includeClassOrigin,
00148       const StringArray* propertyList,
00149       const CIMClass& requestedClass,
00150       const CIMClass& cimClass)
00151 {
00152    m_pProv->updateAccessTime();
00153    m_pProv->enumInstances(env, ns, className, result, localOnly, deep, 
00154       includeQualifiers, includeClassOrigin, propertyList, requestedClass, 
00155       cimClass);
00156 }
00158 CIMInstance
00159 CppInstanceProviderProxy::getInstance(
00160       const ProviderEnvironmentIFCRef& env,
00161       const String& ns,
00162       const CIMObjectPath& instanceName,
00163       ELocalOnlyFlag localOnly,
00164       EIncludeQualifiersFlag includeQualifiers, 
00165       EIncludeClassOriginFlag includeClassOrigin,
00166       const StringArray* propertyList, 
00167       const CIMClass& cimClass)
00168 {
00169    m_pProv->updateAccessTime();
00170    return m_pProv->getInstance(env, ns, instanceName, localOnly, 
00171       includeQualifiers, includeClassOrigin, propertyList, cimClass);
00172 }
00173 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00174 
00175 CIMObjectPath
00176 CppInstanceProviderProxy::createInstance(
00177       const ProviderEnvironmentIFCRef& env,
00178       const String& ns,
00179       const CIMInstance& cimInstance)
00180 {
00181    m_pProv->updateAccessTime();
00182    return m_pProv->createInstance(env, ns, cimInstance);
00183 }
00185 void
00186 CppInstanceProviderProxy::modifyInstance(
00187       const ProviderEnvironmentIFCRef& env,
00188       const String& ns,
00189       const CIMInstance& modifiedInstance,
00190       const CIMInstance& previousInstance,
00191       EIncludeQualifiersFlag includeQualifiers,
00192       const StringArray* propertyList,
00193       const CIMClass& theClass)
00194 {
00195    m_pProv->updateAccessTime();
00196    m_pProv->modifyInstance(env, ns, modifiedInstance, previousInstance, 
00197       includeQualifiers, propertyList, theClass);
00198 }
00200 void
00201 CppInstanceProviderProxy::deleteInstance(
00202       const ProviderEnvironmentIFCRef& env,
00203       const String& ns,
00204       const CIMObjectPath& cop)
00205 {
00206    m_pProv->updateAccessTime();
00207    m_pProv->deleteInstance(env, ns, cop);
00208 }
00209 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00210 
00212 CppSecondaryInstanceProviderProxy::CppSecondaryInstanceProviderProxy(CppSecondaryInstanceProviderIFCRef pProv)
00213    : SecondaryInstanceProviderIFC()
00214    , m_pProv(pProv)
00215 {
00216 }
00218 void
00219 CppSecondaryInstanceProviderProxy::filterInstances(
00220    const ProviderEnvironmentIFCRef &env, const String &ns, 
00221    const String &className, CIMInstanceArray &instances, 
00222    ELocalOnlyFlag localOnly, EDeepFlag deep, 
00223    EIncludeQualifiersFlag includeQualifiers, 
00224    EIncludeClassOriginFlag includeClassOrigin, 
00225    const StringArray *propertyList, const CIMClass &requestedClass, 
00226    const CIMClass &cimClass)
00227 {
00228    m_pProv->updateAccessTime();
00229    m_pProv->filterInstances(env, ns, className, instances, localOnly, deep, includeQualifiers, includeClassOrigin, propertyList, requestedClass, cimClass);
00230 }
00231 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00232 
00233 void
00234 CppSecondaryInstanceProviderProxy::createInstance(const ProviderEnvironmentIFCRef &env, const String &ns, const CIMInstance &cimInstance)
00235 {
00236    m_pProv->updateAccessTime();
00237    m_pProv->createInstance(env, ns, cimInstance);
00238 }
00240 void
00241 CppSecondaryInstanceProviderProxy::modifyInstance(const ProviderEnvironmentIFCRef &env, const String &ns, const CIMInstance &modifiedInstance, 
00242    const CIMInstance &previousInstance, WBEMFlags:: EIncludeQualifiersFlag includeQualifiers, const StringArray *propertyList, const CIMClass &theClass)
00243 {
00244    m_pProv->updateAccessTime();
00245    m_pProv->modifyInstance(env, ns, modifiedInstance, previousInstance, includeQualifiers, propertyList, theClass);
00246 }
00248 void
00249 CppSecondaryInstanceProviderProxy::deleteInstance(const ProviderEnvironmentIFCRef &env, const String &ns, const CIMObjectPath &cop)
00250 {
00251    m_pProv->updateAccessTime();
00252    m_pProv->deleteInstance(env, ns, cop);
00253 }
00254 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00255 
00257 CppMethodProviderProxy::CppMethodProviderProxy(CppMethodProviderIFCRef pProv) :
00258    MethodProviderIFC(), m_pProv(pProv)
00259 {
00260 }
00262 CIMValue
00263 CppMethodProviderProxy::invokeMethod(
00264       const ProviderEnvironmentIFCRef& env,
00265       const String& ns,
00266       const CIMObjectPath& path,
00267       const String& methodName,
00268       const CIMParamValueArray& in,
00269       CIMParamValueArray& out)
00270 {
00271    m_pProv->updateAccessTime();
00272    return m_pProv->invokeMethod(env, ns, path, methodName, in, out);
00273 }
00274 
00275 } 
00276