summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormark.hamzy <mark.hamzy>2007-08-15 19:56:41 +0000
committermark.hamzy <mark.hamzy>2007-08-15 19:56:41 +0000
commiteecf58d201efa3d70fd4d6aacb3a39f4bf802c98 (patch)
tree5af14c3f997866c66b7eb7bc989c7c2046e2e2ab
parentab8950981c8bed07c2a983d5d77251fcc27f2522 (diff)
downloadtog-pegasus-TASK-PEP274_dacim-branch.zip
tog-pegasus-TASK-PEP274_dacim-branch.tar.gz
tog-pegasus-TASK-PEP274_dacim-branch.tar.xz
TITLE: fixes DESCRIPTION: accept languages setting, don't use OOPProviderManagerRouter for dacim, stop a reposity write for dacim
-rw-r--r--src/Pegasus/Client/CIMClientRep.cpp30
-rw-r--r--src/Pegasus/Client/CIMDirectAccessRep.cpp2
-rw-r--r--src/Pegasus/ProviderManagerService/ProviderManagerService.cpp24
-rw-r--r--src/Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.cpp16
4 files changed, 56 insertions, 16 deletions
diff --git a/src/Pegasus/Client/CIMClientRep.cpp b/src/Pegasus/Client/CIMClientRep.cpp
index e1ada84..3b50b58 100644
--- a/src/Pegasus/Client/CIMClientRep.cpp
+++ b/src/Pegasus/Client/CIMClientRep.cpp
@@ -1170,6 +1170,21 @@ Message* CIMClientRep::_doRequest(
request.reset();
throw NotConnectedException();
}
+
+ //
+ // Set HTTP method in request to POST
+ //
+ //Bug 478/418 - Change this to do post call, not mpost
+ request->setHttpMethod (HTTP_METHOD__POST);
+
+ // Set the Accept-Languages and Content-Languages into
+ // the request message
+
+ request->operationContext.set(
+ AcceptLanguageListContainer(requestAcceptLanguages));
+ request->operationContext.set(
+ ContentLanguageListContainer(requestContentLanguages));
+
#ifdef PEGASUS_USE_DIRECTACCESS_FOR_LOCAL_DEPEND
try
{
@@ -1266,21 +1281,6 @@ Message* CIMClientRep::_doRequest(
// ATTN-RK-P2-20020416: We should probably clear out the queue first.
PEGASUS_ASSERT(getCount() == 0); // Shouldn't be any messages in our queue
- //
- // Set HTTP method in request to POST
- //
- //Bug 478/418 - Change this to do post call, not mpost
- request->setHttpMethod (HTTP_METHOD__POST);
-
- // Set the Accept-Languages and Content-Languages into
- // the request message
-
- request->operationContext.set(
- AcceptLanguageListContainer(requestAcceptLanguages));
- request->operationContext.set(
- ContentLanguageListContainer(requestContentLanguages));
-
-
//gathering statistical information about client operation
perfDataStore.reset();
perfDataStore.setOperationType(request->getType());
diff --git a/src/Pegasus/Client/CIMDirectAccessRep.cpp b/src/Pegasus/Client/CIMDirectAccessRep.cpp
index 09f65e7..8c06a2f 100644
--- a/src/Pegasus/Client/CIMDirectAccessRep.cpp
+++ b/src/Pegasus/Client/CIMDirectAccessRep.cpp
@@ -5056,7 +5056,7 @@ CIMDirectAccessRep::CIMDirectAccessRep() :
pvdrmgrsvc_(NULL), pvdrregimgr_(NULL), reposi_(NULL),
opreqdispatch_(NULL), nspvdr_(NULL), interoppvdr_(NULL),
pvdrregipvdr_(NULL), statdatapvdr_(NULL), cfgpvdr_(NULL),
- controlsvc_(NULL), numsubscri_(0), responsemsg_(NULL),queryPvdr_(NULL)
+ queryPvdr_(NULL), controlsvc_(NULL), numsubscri_(0), responsemsg_(NULL)
{
// fix; make as much of the following on-demand rather than creating them
// all here in ctor.
diff --git a/src/Pegasus/ProviderManagerService/ProviderManagerService.cpp b/src/Pegasus/ProviderManagerService/ProviderManagerService.cpp
index 92a3f7f..f6f731a 100644
--- a/src/Pegasus/ProviderManagerService/ProviderManagerService.cpp
+++ b/src/Pegasus/ProviderManagerService/ProviderManagerService.cpp
@@ -103,6 +103,13 @@ ProviderManagerService::ProviderManagerService(
ConfigManager::getInstance()->getCurrentValue(
"forceProviderProcesses"));
+#ifdef PEGASUS_USE_DIRECTACCESS_FOR_LOCAL_DEPEND
+ if (runtime_context_is_directaccess_cim)
+ {
+ _forceProviderProcesses = false;
+ }
+#endif
+
#ifdef PEGASUS_DISABLE_PROV_USERCTXT
if (_forceProviderProcesses)
{
@@ -117,9 +124,18 @@ ProviderManagerService::ProviderManagerService(
createDefaultProviderManagerCallback);
}
#else
+#ifdef PEGASUS_USE_DIRECTACCESS_FOR_LOCAL_DEPEND
+ if (!runtime_context_is_directaccess_cim)
+ {
+ _oopProviderManagerRouter = new OOPProviderManagerRouter(
+ indicationCallback, responseChunkCallback,
+ providerModuleFailureCallback);
+ }
+#else
_oopProviderManagerRouter = new OOPProviderManagerRouter(
indicationCallback, responseChunkCallback,
providerModuleFailureCallback);
+#endif
if (!_forceProviderProcesses)
{
@@ -734,6 +750,14 @@ Message* ProviderManagerService::_processMessage(CIMRequestMessage* request)
}
}
#endif
+
+#ifdef PEGASUS_USE_DIRECTACCESS_FOR_LOCAL_DEPEND
+ if (runtime_context_is_directaccess_cim)
+ {
+ return _basicProviderManagerRouter->processMessage(request);
+ }
+#endif
+
// Forward the request to the appropriate ProviderManagerRouter, based
// on the CIM Server configuration and the UserContext setting.
diff --git a/src/Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.cpp b/src/Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.cpp
index b503780..833fc94 100644
--- a/src/Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.cpp
+++ b/src/Pegasus/Server/ProviderRegistrationManager/ProviderRegistrationManager.cpp
@@ -52,6 +52,10 @@
PEGASUS_NAMESPACE_BEGIN
+#ifdef PEGASUS_USE_DIRECTACCESS_FOR_LOCAL_DEPEND
+extern bool runtime_context_is_directaccess_cim;
+#endif
+
/**
ProviderRegistration table is used to keep track of provider registration
data.
@@ -1761,12 +1765,24 @@ Boolean ProviderRegistrationManager::updateProviderModuleStatus(
CIMObjectPath reference ("", CIMNamespaceName (),
PEGASUS_CLASSNAME_PROVIDERMODULE, moduleKeyBindings);
+#ifdef PEGASUS_USE_DIRECTACCESS_FOR_LOCAL_DEPEND
+ if (!runtime_context_is_directaccess_cim)
+ {
+ //
+ // update repository
+ //
+ _repository->setProperty(
+ PEGASUS_NAMESPACENAME_INTEROP,
+ reference, _PROPERTY_OPERATIONALSTATUS, outStatus);
+ }
+#else
//
// update repository
//
_repository->setProperty(
PEGASUS_NAMESPACENAME_INTEROP,
reference, _PROPERTY_OPERATIONALSTATUS, outStatus);
+#endif
//
// get instance from the repository