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 "OWBI1_ProxyProvider.hpp"
00037 #include "OW_WBEMFlags.hpp"
00038 #include "OW_CIMValue.hpp"
00039 #include "OWBI1_CIMValue.hpp"
00040 #include "OW_CIMClass.hpp"
00041 #include "OWBI1_CIMClass.hpp"
00042 #include "OW_CIMInstance.hpp"
00043 #include "OWBI1_CIMInstance.hpp"
00044 #include "OW_CIMObjectPath.hpp"
00045 #include "OWBI1_CIMObjectPath.hpp"
00046 #include "OW_CIMParamValue.hpp"
00047 #include "OWBI1_CIMParamValue.hpp"
00048 #include "OW_ProviderEnvironmentIFC.hpp"
00049 #include "OWBI1_ProviderEnvironmentIFC.hpp"
00050 
00051 namespace OWBI1
00052 {
00053 
00054 
00055 
00056 
00057 
00058 
00059 
00060 
00061 
00062 using namespace WBEMFlags;
00063 #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00064 
00065 BI1AssociatorProviderProxy::BI1AssociatorProviderProxy(
00066    const BI1AssociatorProviderIFCRef& pProv) :
00067    AssociatorProviderIFC(), m_pProv(pProv)
00068 {
00069 }
00070 
00072 void
00073 BI1AssociatorProviderProxy::associators(
00074       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00075       OpenWBEM::CIMInstanceResultHandlerIFC& result,
00076       const OpenWBEM::String& ns,
00077       const OpenWBEM::CIMObjectPath& objectName,
00078       const OpenWBEM::String& assocClass,
00079       const OpenWBEM::String& resultClass,
00080       const OpenWBEM::String& role,
00081       const OpenWBEM::String& resultRole,
00082       OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00083       OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00084       const OpenWBEM::StringArray* propertyList)
00085 {
00086    m_pProv->updateAccessTime();
00087    CIMInstanceResultHandlerWrapper cirh(result);
00088    
00089    m_pProv->associators(createProvEnvWrapper(env), cirh, ns.c_str(), convertCIMObjectPath(objectName), assocClass.c_str(), resultClass.c_str(), role.c_str(),
00090       resultRole.c_str(), convertPropertyList(propertyList));
00091 }
00093 void
00094 BI1AssociatorProviderProxy::associatorNames(
00095       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00096       OpenWBEM::CIMObjectPathResultHandlerIFC& result,
00097       const OpenWBEM::String& ns,
00098       const OpenWBEM::CIMObjectPath& objectName,
00099       const OpenWBEM::String& assocClass,
00100       const OpenWBEM::String& resultClass,
00101       const OpenWBEM::String& role,
00102       const OpenWBEM::String& resultRole)
00103 {
00104    m_pProv->updateAccessTime();
00105    CIMObjectPathResultHandlerWrapper coprh(result);
00106    m_pProv->associatorNames(createProvEnvWrapper(env), coprh, ns.c_str(), convertCIMObjectPath(objectName), assocClass.c_str(), resultClass.c_str(),
00107          role.c_str(), resultRole.c_str());
00108 }
00110 void
00111 BI1AssociatorProviderProxy::references(
00112       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00113       OpenWBEM::CIMInstanceResultHandlerIFC& result,
00114       const OpenWBEM::String& ns,
00115       const OpenWBEM::CIMObjectPath& objectName,
00116       const OpenWBEM::String& resultClass,
00117       const OpenWBEM::String& role,
00118       OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00119       OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00120       const OpenWBEM::StringArray* propertyList)
00121 {
00122    m_pProv->updateAccessTime();
00123    CIMInstanceResultHandlerWrapper cirh(result);
00124    
00125    m_pProv->references(createProvEnvWrapper(env), cirh, ns.c_str(), convertCIMObjectPath(objectName), resultClass.c_str(), role.c_str(),
00126          convertPropertyList(propertyList));
00127 }
00129 void
00130 BI1AssociatorProviderProxy::referenceNames(
00131       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00132       OpenWBEM::CIMObjectPathResultHandlerIFC& result,
00133       const OpenWBEM::String& ns,
00134       const OpenWBEM::CIMObjectPath& objectName,
00135       const OpenWBEM::String& resultClass,
00136       const OpenWBEM::String& role)
00137 {
00138    m_pProv->updateAccessTime();
00139    CIMObjectPathResultHandlerWrapper coprh(result);
00140    m_pProv->referenceNames(createProvEnvWrapper(env), coprh, ns.c_str(), convertCIMObjectPath(objectName), resultClass.c_str(), role.c_str());
00141 }
00142 #endif // #ifndef OW_DISABLE_ASSOCIATION_TRAVERSAL
00143 
00144 BI1InstanceProviderProxy::BI1InstanceProviderProxy(
00145       const BI1InstanceProviderIFCRef& pProv) :
00146    InstanceProviderIFC(), m_pProv(pProv)
00147 {
00148 }
00150 void
00151 BI1InstanceProviderProxy::enumInstanceNames(
00152       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00153       const OpenWBEM::String& ns,
00154       const OpenWBEM::String& className,
00155       OpenWBEM::CIMObjectPathResultHandlerIFC& result,
00156       const OpenWBEM::CIMClass& cimClass)
00157 {
00158    m_pProv->updateAccessTime();
00159    CIMObjectPathResultHandlerWrapper coprh(result);
00160    return m_pProv->enumInstanceNames(createProvEnvWrapper(env), ns.c_str(), className.c_str(), coprh, convertCIMClass(cimClass));
00161 }
00163 void
00164 BI1InstanceProviderProxy::enumInstances(
00165       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00166       const OpenWBEM::String& ns,
00167       const OpenWBEM::String& className,
00168       OpenWBEM::CIMInstanceResultHandlerIFC& result,
00169       OpenWBEM::WBEMFlags::ELocalOnlyFlag localOnly, 
00170       OpenWBEM::WBEMFlags::EDeepFlag deep, 
00171       OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers, 
00172       OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00173       const OpenWBEM::StringArray* propertyList,
00174       const OpenWBEM::CIMClass& requestedClass,
00175       const OpenWBEM::CIMClass& cimClass)
00176 {
00177    m_pProv->updateAccessTime();
00178    CIMInstanceResultHandlerWrapper cirh(result);
00179    
00180    m_pProv->enumInstances(createProvEnvWrapper(env), ns.c_str(), className.c_str(), cirh,
00181       convertPropertyList(propertyList), convertCIMClass(requestedClass), 
00182       convertCIMClass(cimClass));
00183 }
00185 OpenWBEM::CIMInstance
00186 BI1InstanceProviderProxy::getInstance(
00187       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00188       const OpenWBEM::String& ns,
00189       const OpenWBEM::CIMObjectPath& instanceName,
00190       OpenWBEM::WBEMFlags::ELocalOnlyFlag localOnly,
00191       OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers, 
00192       OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin,
00193       const OpenWBEM::StringArray* propertyList, 
00194       const OpenWBEM::CIMClass& cimClass)
00195 {
00196    m_pProv->updateAccessTime();
00197    
00198    return convertCIMInstance(m_pProv->getInstance(createProvEnvWrapper(env), ns.c_str(), convertCIMObjectPath(instanceName),
00199       convertPropertyList(propertyList), convertCIMClass(cimClass)));
00200 }
00201 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00202 
00203 OpenWBEM::CIMObjectPath
00204 BI1InstanceProviderProxy::createInstance(
00205       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00206       const OpenWBEM::String& ns,
00207       const OpenWBEM::CIMInstance& cimInstance)
00208 {
00209    m_pProv->updateAccessTime();
00210    return convertCIMObjectPath(m_pProv->createInstance(createProvEnvWrapper(env), ns.c_str(), convertCIMInstance(cimInstance)));
00211 }
00213 void
00214 BI1InstanceProviderProxy::modifyInstance(
00215       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00216       const OpenWBEM::String& ns,
00217       const OpenWBEM::CIMInstance& modifiedInstance,
00218       const OpenWBEM::CIMInstance& previousInstance,
00219       OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers,
00220       const OpenWBEM::StringArray* propertyList,
00221       const OpenWBEM::CIMClass& theClass)
00222 {
00223    m_pProv->updateAccessTime();
00224    m_pProv->modifyInstance(createProvEnvWrapper(env), ns.c_str(), convertCIMInstance(modifiedInstance), convertCIMInstance(previousInstance), 
00225       convertPropertyList(propertyList), convertCIMClass(theClass));
00226 }
00228 void
00229 BI1InstanceProviderProxy::deleteInstance(
00230       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00231       const OpenWBEM::String& ns,
00232       const OpenWBEM::CIMObjectPath& cop)
00233 {
00234    m_pProv->updateAccessTime();
00235    m_pProv->deleteInstance(createProvEnvWrapper(env), ns.c_str(), convertCIMObjectPath(cop));
00236 }
00237 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00238 
00240 BI1SecondaryInstanceProviderProxy::BI1SecondaryInstanceProviderProxy(const BI1SecondaryInstanceProviderIFCRef& pProv)
00241    : SecondaryInstanceProviderIFC()
00242    , m_pProv(pProv)
00243 {
00244 }
00246 void
00247 BI1SecondaryInstanceProviderProxy::filterInstances(
00248    const OpenWBEM::ProviderEnvironmentIFCRef &env, 
00249    const OpenWBEM::String &ns, 
00250    const OpenWBEM::String &className, 
00251    OpenWBEM::CIMInstanceArray &instances, 
00252    OpenWBEM::WBEMFlags::ELocalOnlyFlag localOnly, 
00253    OpenWBEM::WBEMFlags::EDeepFlag deep, 
00254    OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers, 
00255    OpenWBEM::WBEMFlags::EIncludeClassOriginFlag includeClassOrigin, 
00256    const OpenWBEM::StringArray *propertyList, 
00257    const OpenWBEM::CIMClass &requestedClass, 
00258    const OpenWBEM::CIMClass &cimClass)
00259 {
00260    m_pProv->updateAccessTime();
00261    OWBI1::CIMInstanceArray owbi1Instances(convertCIMInstances(instances));
00262    
00263    m_pProv->filterInstances(createProvEnvWrapper(env), ns.c_str(), className.c_str(), owbi1Instances, 
00264       convertPropertyList(propertyList), convertCIMClass(requestedClass), convertCIMClass(cimClass));
00265    instances = convertCIMInstances(owbi1Instances);
00266 }
00267 #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00268 
00269 void
00270 BI1SecondaryInstanceProviderProxy::createInstance(const OpenWBEM::ProviderEnvironmentIFCRef &env, const OpenWBEM::String &ns, const OpenWBEM::CIMInstance &cimInstance)
00271 {
00272    m_pProv->updateAccessTime();
00273    m_pProv->createInstance(createProvEnvWrapper(env), ns.c_str(), convertCIMInstance(cimInstance));
00274 }
00276 void
00277 BI1SecondaryInstanceProviderProxy::modifyInstance(
00278    const OpenWBEM::ProviderEnvironmentIFCRef &env, 
00279    const OpenWBEM::String &ns, 
00280    const OpenWBEM::CIMInstance &modifiedInstance, 
00281    const OpenWBEM::CIMInstance &previousInstance, 
00282    OpenWBEM::WBEMFlags::EIncludeQualifiersFlag includeQualifiers, 
00283    const OpenWBEM::StringArray *propertyList, 
00284    const OpenWBEM::CIMClass &theClass)
00285 {
00286    m_pProv->updateAccessTime();
00287    m_pProv->modifyInstance(createProvEnvWrapper(env), ns.c_str(), convertCIMInstance(modifiedInstance), convertCIMInstance(previousInstance), 
00288       convertPropertyList(propertyList), convertCIMClass(theClass));
00289 }
00291 void
00292 BI1SecondaryInstanceProviderProxy::deleteInstance(const OpenWBEM::ProviderEnvironmentIFCRef &env, const OpenWBEM::String &ns, const OpenWBEM::CIMObjectPath &cop)
00293 {
00294    m_pProv->updateAccessTime();
00295    m_pProv->deleteInstance(createProvEnvWrapper(env), ns.c_str(), convertCIMObjectPath(cop));
00296 }
00297 #endif // #ifndef OW_DISABLE_INSTANCE_MANIPULATION
00298 
00300 BI1MethodProviderProxy::BI1MethodProviderProxy(const BI1MethodProviderIFCRef& pProv) :
00301    MethodProviderIFC(), m_pProv(pProv)
00302 {
00303 }
00305 OpenWBEM::CIMValue
00306 BI1MethodProviderProxy::invokeMethod(
00307       const OpenWBEM::ProviderEnvironmentIFCRef& env,
00308       const OpenWBEM::String& ns,
00309       const OpenWBEM::CIMObjectPath& path,
00310       const OpenWBEM::String& methodName,
00311       const OpenWBEM::CIMParamValueArray& in,
00312       OpenWBEM::CIMParamValueArray& out)
00313 {
00314    m_pProv->updateAccessTime();
00315    OWBI1::CIMParamValueArray owbi1Out(convertCIMParamValues(out));
00316    CIMValue rval = m_pProv->invokeMethod(createProvEnvWrapper(env), ns.c_str(), convertCIMObjectPath(path), methodName.c_str(), convertCIMParamValues(in), owbi1Out);
00317    out = convertCIMParamValues(owbi1Out);
00318    return convertCIMValue(rval);
00319 }
00320 
00321 BI1IndicationExportProviderProxy::BI1IndicationExportProviderProxy(const BI1IndicationExportProviderIFCRef& pProv) :
00322    m_pProv(pProv) {}
00323 BI1IndicationExportProviderProxy::~BI1IndicationExportProviderProxy()
00324 {
00325 }
00326 OpenWBEM::StringArray BI1IndicationExportProviderProxy::getHandlerClassNames()
00327 {
00328    return convertStringArray(m_pProv->getHandlerClassNames());
00329 }
00330 
00331 void BI1IndicationExportProviderProxy::exportIndication(const OpenWBEM::ProviderEnvironmentIFCRef& env,
00332    const OpenWBEM::String& ns,
00333    const OpenWBEM::CIMInstance& indHandlerInst, const OpenWBEM::CIMInstance& indicationInst)
00334 {
00335    m_pProv->exportIndication(createProvEnvWrapper(env), ns.c_str(), convertCIMInstance(indHandlerInst), convertCIMInstance(indicationInst));
00336 }
00337 
00338 void BI1IndicationExportProviderProxy::doCooperativeCancel()
00339 {
00340    m_pProv->doCooperativeCancel();
00341 }
00342 void BI1IndicationExportProviderProxy::doDefinitiveCancel()
00343 {
00344    m_pProv->doDefinitiveCancel();
00345 }
00346 
00347 BI1PolledProviderProxy::BI1PolledProviderProxy(const BI1PolledProviderIFCRef& pProv) :
00348    m_pProv(pProv) {}
00349 BI1PolledProviderProxy::~BI1PolledProviderProxy()
00350 {
00351 }
00352 OpenWBEM::Int32 BI1PolledProviderProxy::poll(const OpenWBEM::ProviderEnvironmentIFCRef& env )
00353       { return m_pProv->poll(createProvEnvWrapper(env)); }
00354 OpenWBEM::Int32 BI1PolledProviderProxy::getInitialPollingInterval(const OpenWBEM::ProviderEnvironmentIFCRef& env )
00355       { return m_pProv->getInitialPollingInterval(createProvEnvWrapper(env)); }
00356 void BI1PolledProviderProxy::doCooperativeCancel()
00357 {
00358    m_pProv->doCooperativeCancel();
00359 }
00360 void BI1PolledProviderProxy::doDefinitiveCancel()
00361 {
00362    m_pProv->doDefinitiveCancel();
00363 }
00364 
00365 BI1IndicationProviderProxy::BI1IndicationProviderProxy(const BI1IndicationProviderIFCRef& pProv)
00366    : m_pProv(pProv)
00367    , m_activationCount(0) {}
00368 BI1IndicationProviderProxy::~BI1IndicationProviderProxy()
00369 {
00370 }
00371 void BI1IndicationProviderProxy::deActivateFilter(
00372    const OpenWBEM::ProviderEnvironmentIFCRef &env, 
00373    const OpenWBEM::WQLSelectStatement &filter, 
00374    const OpenWBEM::String& eventType, 
00375    const OpenWBEM::String& nameSpace,
00376    const OpenWBEM::StringArray& classes) 
00377 {
00378    bool lastActivation = (--m_activationCount == 0);
00379    m_pProv->deActivateFilter(createProvEnvWrapper(env),convertWQLSelectStatement(filter),eventType.c_str(),nameSpace.c_str(), convertStringArray(classes),lastActivation);
00380 }
00381 void BI1IndicationProviderProxy::activateFilter(
00382    const OpenWBEM::ProviderEnvironmentIFCRef &env, 
00383    const OpenWBEM::WQLSelectStatement &filter, 
00384    const OpenWBEM::String& eventType, 
00385    const OpenWBEM::String& nameSpace,
00386    const OpenWBEM::StringArray& classes) 
00387 {
00388    bool firstActivation = (m_activationCount++ == 0);
00389    m_pProv->activateFilter(createProvEnvWrapper(env),convertWQLSelectStatement(filter),eventType.c_str(),nameSpace.c_str(),convertStringArray(classes),firstActivation);
00390 }
00391 void BI1IndicationProviderProxy::authorizeFilter(
00392    const OpenWBEM::ProviderEnvironmentIFCRef &env, 
00393    const OpenWBEM::WQLSelectStatement &filter, 
00394    const OpenWBEM::String& eventType, 
00395    const OpenWBEM::String& nameSpace,
00396    const OpenWBEM::StringArray& classes, 
00397    const OpenWBEM::String &owner) 
00398 {
00399    m_pProv->authorizeFilter(createProvEnvWrapper(env),convertWQLSelectStatement(filter),eventType.c_str(),nameSpace.c_str(),convertStringArray(classes),owner.c_str());
00400 }
00401 int BI1IndicationProviderProxy::mustPoll(
00402    const OpenWBEM::ProviderEnvironmentIFCRef& env,
00403    const OpenWBEM::WQLSelectStatement& filter, 
00404    const OpenWBEM::String& eventType, 
00405    const OpenWBEM::String& nameSpace,
00406    const OpenWBEM::StringArray& classes
00407    )
00408 {
00409    return m_pProv->mustPoll(createProvEnvWrapper(env),convertWQLSelectStatement(filter),eventType.c_str(),nameSpace.c_str(),convertStringArray(classes));
00410 }
00411 
00412 } 
00413