version 1.38, 2002/07/26 20:01:19
|
version 1.43.6.1, 2003/07/01 19:21:35
|
|
|
//%///////////////////////////////////////////////////////////////////////////// |
//%///////////////////-*-c++-*-///////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM, | // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM, |
// The Open Group, Tivoli Systems | // The Open Group, Tivoli Systems |
|
|
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <iostream> | #include <iostream> |
#include <cstring> | #include <cstring> |
#include <Pegasus/Common/Exception.h> |
#include <Pegasus/Common/InternalException.h> |
#include <Pegasus/Common/IPC.h> | #include <Pegasus/Common/IPC.h> |
#include <Pegasus/Common/StatisticalData.h> | #include <Pegasus/Common/StatisticalData.h> |
#include <Pegasus/Common/Linkage.h> | #include <Pegasus/Common/Linkage.h> |
|
|
class AsyncLegacyOperationStart; | class AsyncLegacyOperationStart; |
class AsyncLegacyOperationResult; | class AsyncLegacyOperationResult; |
| |
|
enum HttpMethod |
|
{ |
|
HTTP_METHOD__POST, |
|
HTTP_METHOD_M_POST |
|
}; |
|
|
/** The Message class and derived classes are used to pass messages between | /** The Message class and derived classes are used to pass messages between |
modules. Messages are passed between modules using the message queues | modules. Messages are passed between modules using the message queues |
(see MessageQueue class). Derived classes may add their own fields. | (see MessageQueue class). Derived classes may add their own fields. |
|
|
_key(key), | _key(key), |
_routing_code(routing_code), | _routing_code(routing_code), |
_mask(mask), | _mask(mask), |
|
_last_thread_id(pegasus_thread_self()), |
_next(0), | _next(0), |
_prev(0), | _prev(0), |
_async(0), | _async(0), |
|
|
_key = msg._key; | _key = msg._key; |
_routing_code = msg._routing_code; | _routing_code = msg._routing_code; |
_mask = msg._mask; | _mask = msg._mask; |
|
_last_thread_id = msg._last_thread_id; |
_next = _prev = _async = 0; | _next = _prev = _async = 0; |
dest = msg.dest; | dest = msg.dest; |
|
_httpMethod = msg._httpMethod; |
} | } |
return *this; | return *this; |
} | } |
|
|
| |
void setMask(Uint32 mask) { _mask = mask; } | void setMask(Uint32 mask) { _mask = mask; } |
| |
|
HttpMethod getHttpMethod() const { return _httpMethod; } |
|
|
|
void setHttpMethod(HttpMethod httpMethod) {_httpMethod = httpMethod;} |
|
|
#ifdef PEGASUS_HAS_PERFINST | #ifdef PEGASUS_HAS_PERFINST |
// | // |
// Needed for performance measurement | // Needed for performance measurement |
|
|
_async = msg; | _async = msg; |
} | } |
| |
|
// << Tue Jul 1 11:02:49 2003 mdd >> pep_88 and helper for i18n and l10n |
|
Boolean thread_changed(void) |
|
{ |
|
if(_last_thread_id != pegasus_thread_self()) |
|
{ |
|
_last_thread_id = pegasus_thread_self(); |
|
return true; |
|
} |
|
|
|
return false; |
|
} |
|
|
|
// << Tue Jul 1 13:41:02 2003 mdd >> pep_88 - |
|
// assist in synchronizing responses with requests |
|
|
|
void synch_response(Message *req) |
|
{ |
|
_key = req->_key; |
|
_routing_code = req->_routing_code; |
|
} |
|
|
| |
private: | private: |
Uint32 _type; | Uint32 _type; |
Uint32 _key; | Uint32 _key; |
Uint32 _routing_code; | Uint32 _routing_code; |
Uint32 _mask; | Uint32 _mask; |
|
HttpMethod _httpMethod; |
// Needed for performance measurement | // Needed for performance measurement |
timeval _timeServerStart; | timeval _timeServerStart; |
timeval _timeServerEnd; | timeval _timeServerEnd; |
|
|
timeval _timeProviderEnd; | timeval _timeProviderEnd; |
Uint64 _totalTime; | Uint64 _totalTime; |
// | // |
|
|
|
// << Tue Jul 1 11:02:35 2003 mdd >> pep_88 and helper for i18n and l10n |
|
PEGASUS_THREAD_TYPE _last_thread_id; |
|
|
Message* _next; | Message* _next; |
Message* _prev; | Message* _prev; |
| |
|
|
CIM_DISABLE_MODULE_REQUEST_MESSAGE, | CIM_DISABLE_MODULE_REQUEST_MESSAGE, |
CIM_ENABLE_MODULE_REQUEST_MESSAGE, | CIM_ENABLE_MODULE_REQUEST_MESSAGE, |
| |
CIM_STOP_ALL_PROVIDERS_REQUEST_MESSAGE, |
CIM_STOP_ALL_PROVIDERS_REQUEST_MESSAGE, // 40 |
| |
CIM_GET_CLASS_RESPONSE_MESSAGE, // 40 |
CIM_GET_CLASS_RESPONSE_MESSAGE, |
CIM_GET_INSTANCE_RESPONSE_MESSAGE, | CIM_GET_INSTANCE_RESPONSE_MESSAGE, |
CIM_EXPORT_INDICATION_RESPONSE_MESSAGE, // 42 |
CIM_EXPORT_INDICATION_RESPONSE_MESSAGE, |
CIM_DELETE_CLASS_RESPONSE_MESSAGE, | CIM_DELETE_CLASS_RESPONSE_MESSAGE, |
CIM_DELETE_INSTANCE_RESPONSE_MESSAGE, | CIM_DELETE_INSTANCE_RESPONSE_MESSAGE, |
CIM_CREATE_CLASS_RESPONSE_MESSAGE, | CIM_CREATE_CLASS_RESPONSE_MESSAGE, |
CIM_CREATE_INSTANCE_RESPONSE_MESSAGE, | CIM_CREATE_INSTANCE_RESPONSE_MESSAGE, |
CIM_MODIFY_CLASS_RESPONSE_MESSAGE, | CIM_MODIFY_CLASS_RESPONSE_MESSAGE, |
CIM_MODIFY_INSTANCE_RESPONSE_MESSAGE, | CIM_MODIFY_INSTANCE_RESPONSE_MESSAGE, |
CIM_ENUMERATE_CLASSES_RESPONSE_MESSAGE, |
CIM_ENUMERATE_CLASSES_RESPONSE_MESSAGE, // 50 |
CIM_ENUMERATE_CLASS_NAMES_RESPONSE_MESSAGE, | CIM_ENUMERATE_CLASS_NAMES_RESPONSE_MESSAGE, |
CIM_ENUMERATE_INSTANCES_RESPONSE_MESSAGE, | CIM_ENUMERATE_INSTANCES_RESPONSE_MESSAGE, |
CIM_ENUMERATE_INSTANCE_NAMES_RESPONSE_MESSAGE, | CIM_ENUMERATE_INSTANCE_NAMES_RESPONSE_MESSAGE, |
|
|
CIM_REFERENCES_RESPONSE_MESSAGE, | CIM_REFERENCES_RESPONSE_MESSAGE, |
CIM_REFERENCE_NAMES_RESPONSE_MESSAGE, | CIM_REFERENCE_NAMES_RESPONSE_MESSAGE, |
CIM_GET_PROPERTY_RESPONSE_MESSAGE, | CIM_GET_PROPERTY_RESPONSE_MESSAGE, |
CIM_SET_PROPERTY_RESPONSE_MESSAGE, |
CIM_SET_PROPERTY_RESPONSE_MESSAGE, // 60 |
CIM_GET_QUALIFIER_RESPONSE_MESSAGE, | CIM_GET_QUALIFIER_RESPONSE_MESSAGE, |
CIM_SET_QUALIFIER_RESPONSE_MESSAGE, | CIM_SET_QUALIFIER_RESPONSE_MESSAGE, |
CIM_DELETE_QUALIFIER_RESPONSE_MESSAGE, | CIM_DELETE_QUALIFIER_RESPONSE_MESSAGE, |
|
|
CIM_MODIFY_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE, | CIM_MODIFY_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE, |
CIM_DISABLE_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE, | CIM_DISABLE_INDICATION_SUBSCRIPTION_RESPONSE_MESSAGE, |
CIM_PROCESS_INDICATION_RESPONSE_MESSAGE, | CIM_PROCESS_INDICATION_RESPONSE_MESSAGE, |
CIM_NOTIFY_PROVIDER_REGISTRATION_RESPONSE_MESSAGE, |
CIM_NOTIFY_PROVIDER_REGISTRATION_RESPONSE_MESSAGE, // 70 |
CIM_NOTIFY_PROVIDER_TERMINATION_RESPONSE_MESSAGE, | CIM_NOTIFY_PROVIDER_TERMINATION_RESPONSE_MESSAGE, |
CIM_HANDLE_INDICATION_RESPONSE_MESSAGE, | CIM_HANDLE_INDICATION_RESPONSE_MESSAGE, |
| |
|
|
CIM_DISABLE_MODULE_RESPONSE_MESSAGE, | CIM_DISABLE_MODULE_RESPONSE_MESSAGE, |
CIM_ENABLE_MODULE_RESPONSE_MESSAGE, | CIM_ENABLE_MODULE_RESPONSE_MESSAGE, |
| |
CIM_STOP_ALL_PROVIDERS_RESPONSE_MESSAGE, |
CIM_STOP_ALL_PROVIDERS_RESPONSE_MESSAGE, // 80 |
| |
// Monitor-related messages: | // Monitor-related messages: |
| |
|
|
ASYNC_DEREGISTER_CIM_SERVICE, | ASYNC_DEREGISTER_CIM_SERVICE, |
ASYNC_UPDATE_CIM_SERVICE, | ASYNC_UPDATE_CIM_SERVICE, |
ASYNC_IOCTL, | ASYNC_IOCTL, |
ASYNC_CIMSERVICE_START, |
ASYNC_CIMSERVICE_START, // 90 |
ASYNC_CIMSERVICE_STOP, | ASYNC_CIMSERVICE_STOP, |
ASYNC_CIMSERVICE_PAUSE, | ASYNC_CIMSERVICE_PAUSE, |
ASYNC_CIMSERVICE_RESUME, | ASYNC_CIMSERVICE_RESUME, |
|
|
| |
ASYNC_FIND_SERVICE_Q, | ASYNC_FIND_SERVICE_Q, |
ASYNC_FIND_SERVICE_Q_RESULT, | ASYNC_FIND_SERVICE_Q_RESULT, |
ASYNC_ENUMERATE_SERVICE, |
ASYNC_ENUMERATE_SERVICE, // 100 |
ASYNC_ENUMERATE_SERVICE_RESULT, | ASYNC_ENUMERATE_SERVICE_RESULT, |
| |
ASYNC_REGISTERED_MODULE, | ASYNC_REGISTERED_MODULE, |
|
|
| |
ASYNC_ASYNC_MODULE_OP_START, | ASYNC_ASYNC_MODULE_OP_START, |
ASYNC_ASYNC_MODULE_OP_RESULT, | ASYNC_ASYNC_MODULE_OP_RESULT, |
|
// for indication consumers |
|
|
|
CIM_CONSUME_INDICATION_REQUEST_MESSAGE, |
|
CIM_CONSUME_INDICATION_RESPONSE_MESSAGE, |
| |
NUMBER_OF_MESSAGES | NUMBER_OF_MESSAGES |
}; | }; |