version 1.10, 2005/06/24 19:34:25
|
version 1.13, 2006/08/09 21:12:59
|
|
|
//%2005//////////////////////////////////////////////////////////////////////// |
//%2006//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development | // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. | // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
|
|
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. | // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; | // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
// EMC Corporation; VERITAS Software Corporation; The Open Group. | // EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; Symantec Corporation; The Open Group. |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a copy | // Permission is hereby granted, free of charge, to any person obtaining a copy |
// of this software and associated documentation files (the "Software"), to | // of this software and associated documentation files (the "Software"), to |
|
|
| |
#include <Pegasus/Listener/List.h> | #include <Pegasus/Listener/List.h> |
#include <Pegasus/Consumer/CIMIndicationConsumer.h> | #include <Pegasus/Consumer/CIMIndicationConsumer.h> |
#include <Pegasus/Common/ContentLanguages.h> |
#include <Pegasus/Common/ContentLanguageList.h> |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
|
|
CIMListenerIndicationDispatchEvent(CIMIndicationConsumer* consumer, | CIMListenerIndicationDispatchEvent(CIMIndicationConsumer* consumer, |
String url, | String url, |
CIMInstance instance, | CIMInstance instance, |
ContentLanguages contentLangs); |
ContentLanguageList contentLangs); |
~CIMListenerIndicationDispatchEvent(); | ~CIMListenerIndicationDispatchEvent(); |
| |
CIMIndicationConsumer* getConsumer() const; | CIMIndicationConsumer* getConsumer() const; |
| |
String getURL() const; | String getURL() const; |
CIMInstance getIndicationInstance() const; | CIMInstance getIndicationInstance() const; |
ContentLanguages getContentLanguages() const; |
ContentLanguageList getContentLanguages() const; |
| |
private: | private: |
CIMIndicationConsumer* _consumer; | CIMIndicationConsumer* _consumer; |
String _url; | String _url; |
CIMInstance _instance; | CIMInstance _instance; |
ContentLanguages _contentLangs; |
ContentLanguageList _contentLangs; |
}; | }; |
| |
CIMListenerIndicationDispatchEvent::CIMListenerIndicationDispatchEvent(CIMIndicationConsumer* consumer, | CIMListenerIndicationDispatchEvent::CIMListenerIndicationDispatchEvent(CIMIndicationConsumer* consumer, |
String url, | String url, |
CIMInstance instance, | CIMInstance instance, |
ContentLanguages contentLangs) |
ContentLanguageList contentLangs) |
:_consumer(consumer),_url(url),_instance(instance), _contentLangs(contentLangs) | :_consumer(consumer),_url(url),_instance(instance), _contentLangs(contentLangs) |
{ | { |
} | } |
|
|
{ | { |
return _instance; | return _instance; |
} | } |
ContentLanguages CIMListenerIndicationDispatchEvent::getContentLanguages() const |
ContentLanguageList CIMListenerIndicationDispatchEvent::getContentLanguages() const |
{ | { |
return _contentLangs; | return _contentLangs; |
} | } |
|
|
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, ContentLanguages contentLangs); |
void deliverIndication(String url, CIMInstance instance, ContentLanguageList contentLangs); |
| |
ThreadPool* _thread_pool; | ThreadPool* _thread_pool; |
PtrList* _consumers; | PtrList* _consumers; |
|
|
| |
CIMInstance instance = request->indicationInstance; | CIMInstance instance = request->indicationInstance; |
String url = request->destinationPath; | String url = request->destinationPath; |
ContentLanguages contentLangs =((ContentLanguageListContainer)request->operationContext. |
ContentLanguageList contentLangs =((ContentLanguageListContainer)request->operationContext. |
get(ContentLanguageListContainer::NAME)).getLanguages(); | get(ContentLanguageListContainer::NAME)).getLanguages(); |
| |
deliverIndication(url,instance,contentLangs); | deliverIndication(url,instance,contentLangs); |
|
|
| |
void CIMListenerIndicationDispatcherRep::deliverIndication(String url, | void CIMListenerIndicationDispatcherRep::deliverIndication(String url, |
CIMInstance instance, | CIMInstance instance, |
ContentLanguages 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(); | Iterator* it = _consumers->iterator(); |
|
|
} | } |
} | } |
} | } |
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); |
| |