version 1.12, 2006/01/30 16:17:58
|
version 1.14.12.1, 2007/03/07 16:04:38
|
|
|
// | // |
//============================================================================== | //============================================================================== |
// | // |
// |
|
// Author: Dong Xiang, EMC Corporation (xiang_dong@emc.com) |
|
// |
|
// Modified By: Seema Gupta (gseema@in.ibm.com) for PEP135 |
|
// |
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#include "CIMListenerIndicationDispatcher.h" | #include "CIMListenerIndicationDispatcher.h" |
|
|
CIMExportIndicationResponseMessage* handleIndicationRequest(CIMExportIndicationRequestMessage* request); | CIMExportIndicationResponseMessage* handleIndicationRequest(CIMExportIndicationRequestMessage* request); |
| |
| |
static PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL deliver_routine(void *param); |
static ThreadReturnType PEGASUS_THREAD_CDECL deliver_routine(void *param); |
| |
private: | private: |
void deliverIndication(String url, CIMInstance instance, ContentLanguageList contentLangs); | void deliverIndication(String url, CIMInstance instance, ContentLanguageList contentLangs); |
|
|
ContentLanguageList contentLangs) | ContentLanguageList contentLangs) |
{ | { |
// go thru all consumers and broadcast the result; should be run in seperate thread | // go thru all consumers and broadcast the result; should be run in seperate thread |
Iterator* it = _consumers->iterator(); |
AutoPtr<Iterator> it(_consumers->iterator()); |
while(it->hasNext()==true) | while(it->hasNext()==true) |
{ | { |
CIMIndicationConsumer* consumer = static_cast<CIMIndicationConsumer*>(it->next()); | CIMIndicationConsumer* consumer = static_cast<CIMIndicationConsumer*>(it->next()); |
|
|
| |
if (rtn != PEGASUS_THREAD_OK) | if (rtn != PEGASUS_THREAD_OK) |
{ | { |
Logger::put(Logger::STANDARD_LOG, System::CIMSERVER, Logger::TRACE, |
Logger::put(Logger::STANDARD_LOG, System::CIMLISTENER, Logger::TRACE, |
"Not enough threads to allocate a worker to deliver the event. "); | "Not enough threads to allocate a worker to deliver the event. "); |
| |
Tracer::trace(TRC_SERVER, Tracer::LEVEL2, | Tracer::trace(TRC_SERVER, Tracer::LEVEL2, |
|
|
} | } |
} | } |
} | } |
PEGASUS_THREAD_RETURN PEGASUS_THREAD_CDECL CIMListenerIndicationDispatcherRep::deliver_routine(void *param) |
ThreadReturnType PEGASUS_THREAD_CDECL CIMListenerIndicationDispatcherRep::deliver_routine(void *param) |
{ | { |
CIMListenerIndicationDispatchEvent* event = static_cast<CIMListenerIndicationDispatchEvent*>(param); | CIMListenerIndicationDispatchEvent* event = static_cast<CIMListenerIndicationDispatchEvent*>(param); |
| |