version 1.93, 2008/01/09 20:29:29
|
version 1.97, 2008/11/20 06:16:07
|
|
|
#include <Pegasus/Common/InternalException.h> | #include <Pegasus/Common/InternalException.h> |
#include <Pegasus/Common/Linkage.h> | #include <Pegasus/Common/Linkage.h> |
#include <Pegasus/Common/CIMOperationType.h> | #include <Pegasus/Common/CIMOperationType.h> |
#include <Pegasus/Common/Threads.h> |
|
#include <Pegasus/Common/Linkable.h> | #include <Pegasus/Common/Linkable.h> |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
|
|
| |
CLIENT_EXCEPTION_MESSAGE, | CLIENT_EXCEPTION_MESSAGE, |
| |
ASYNC_REGISTER_CIM_SERVICE, |
ASYNC_IOCLOSE, |
ASYNC_DEREGISTER_CIM_SERVICE, |
ASYNC_CIMSERVICE_START, |
ASYNC_UPDATE_CIM_SERVICE, |
|
ASYNC_IOCTL, |
|
ASYNC_CIMSERVICE_START, // 80 |
|
ASYNC_CIMSERVICE_STOP, | ASYNC_CIMSERVICE_STOP, |
ASYNC_CIMSERVICE_PAUSE, |
|
ASYNC_CIMSERVICE_RESUME, |
|
| |
ASYNC_ASYNC_OP_START, | ASYNC_ASYNC_OP_START, |
ASYNC_ASYNC_OP_RESULT, |
ASYNC_ASYNC_OP_RESULT, // 80 |
ASYNC_ASYNC_LEGACY_OP_START, | ASYNC_ASYNC_LEGACY_OP_START, |
ASYNC_ASYNC_LEGACY_OP_RESULT, | ASYNC_ASYNC_LEGACY_OP_RESULT, |
| |
ASYNC_FIND_SERVICE_Q, |
|
ASYNC_FIND_SERVICE_Q_RESULT, |
|
ASYNC_ENUMERATE_SERVICE, // 90 |
|
ASYNC_ENUMERATE_SERVICE_RESULT, |
|
|
|
ASYNC_REGISTERED_MODULE, |
|
ASYNC_DEREGISTERED_MODULE, |
|
ASYNC_FIND_MODULE_IN_SERVICE, |
|
ASYNC_FIND_MODULE_IN_SERVICE_RESPONSE, |
|
|
|
ASYNC_ASYNC_MODULE_OP_START, | ASYNC_ASYNC_MODULE_OP_START, |
ASYNC_ASYNC_MODULE_OP_RESULT, | ASYNC_ASYNC_MODULE_OP_RESULT, |
| |
CIM_NOTIFY_PROVIDER_ENABLE_REQUEST_MESSAGE, | CIM_NOTIFY_PROVIDER_ENABLE_REQUEST_MESSAGE, |
CIM_NOTIFY_PROVIDER_ENABLE_RESPONSE_MESSAGE, | CIM_NOTIFY_PROVIDER_ENABLE_RESPONSE_MESSAGE, |
| |
CIM_NOTIFY_PROVIDER_FAIL_REQUEST_MESSAGE, // 100 |
CIM_NOTIFY_PROVIDER_FAIL_REQUEST_MESSAGE, |
CIM_NOTIFY_PROVIDER_FAIL_RESPONSE_MESSAGE, | CIM_NOTIFY_PROVIDER_FAIL_RESPONSE_MESSAGE, |
| |
CIM_INITIALIZE_PROVIDER_AGENT_REQUEST_MESSAGE, | CIM_INITIALIZE_PROVIDER_AGENT_REQUEST_MESSAGE, |
CIM_INITIALIZE_PROVIDER_AGENT_RESPONSE_MESSAGE, |
CIM_INITIALIZE_PROVIDER_AGENT_RESPONSE_MESSAGE, // 90 |
| |
CIM_NOTIFY_CONFIG_CHANGE_REQUEST_MESSAGE, | CIM_NOTIFY_CONFIG_CHANGE_REQUEST_MESSAGE, |
CIM_NOTIFY_CONFIG_CHANGE_RESPONSE_MESSAGE, | CIM_NOTIFY_CONFIG_CHANGE_RESPONSE_MESSAGE, |
|
|
Uint32 destination = 0, | Uint32 destination = 0, |
Uint32 mask = 0) | Uint32 mask = 0) |
: | : |
|
dest(destination), |
_type(type), | _type(type), |
_mask(mask), | _mask(mask), |
_httpMethod (HTTP_METHOD__POST), | _httpMethod (HTTP_METHOD__POST), |
_close_connect(false), |
_httpCloseConnect(false), |
_last_thread_id(Threads::self()), |
|
_async(0), |
|
dest(destination), |
|
_isComplete(true), | _isComplete(true), |
_index(0) |
_index(0), |
|
_async(0) |
{ | { |
} | } |
| |
|
|
// NOTE: The compiler default implementation of the copy constructor | // NOTE: The compiler default implementation of the copy constructor |
// is used for this class. | // is used for this class. |
| |
Boolean getCloseConnect() const { return _close_connect; } |
Boolean getCloseConnect() const { return _httpCloseConnect; } |
void setCloseConnect(Boolean close_connect) |
void setCloseConnect(Boolean httpCloseConnect) |
{ | { |
_close_connect = close_connect; |
_httpCloseConnect = httpCloseConnect; |
} | } |
| |
MessageType getType() const { return _type; } | MessageType getType() const { return _type; } |
| |
void setType(MessageType type) { _type = type; } |
|
|
|
Uint32 getMask() const { return _mask; } | Uint32 getMask() const { return _mask; } |
| |
void setMask(Uint32 mask) { _mask = mask; } | void setMask(Uint32 mask) { _mask = mask; } |
|
|
_async = msg; | _async = msg; |
} | } |
| |
// << Tue Jul 1 11:02:49 2003 mdd >> pep_88 and helper for i18n and l10n |
|
Boolean thread_changed() |
|
{ |
|
if (!Threads::equal(_last_thread_id, Threads::self())) |
|
{ |
|
_last_thread_id = Threads::self(); |
|
return true; |
|
} |
|
|
|
return false; |
|
} |
|
|
|
// set the message index indicating what piece (or sequence) this is | // set the message index indicating what piece (or sequence) this is |
// message indexes start at zero | // message indexes start at zero |
void setIndex(Uint32 index) { _index = index; } | void setIndex(Uint32 index) { _index = index; } |
| |
// increment the message index |
|
void incrementIndex() { _index++; } |
|
|
|
// set the complete flag indicating if this message piece is the |
|
// last or not |
|
void setComplete(Boolean isComplete) |
|
{ |
|
_isComplete = isComplete ? true:false; |
|
} |
|
|
|
// get the message index (or sequence number) | // get the message index (or sequence number) |
Uint32 getIndex() const { return _index; } | Uint32 getIndex() const { return _index; } |
| |
// is this the first piece of the message ? | // is this the first piece of the message ? |
Boolean isFirst() const { return _index == 0 ? true : false; } |
Boolean isFirst() const { return _index == 0; } |
|
|
|
// set the complete flag indicating whether this message piece is the last |
|
void setComplete(Boolean isComplete) |
|
{ |
|
_isComplete = isComplete; |
|
} |
| |
// is this message complete? (i.e the last in a one or more sequence) | // is this message complete? (i.e the last in a one or more sequence) |
Boolean isComplete() const { return _isComplete; } | Boolean isComplete() const { return _isComplete; } |
| |
private: |
|
MessageType _type; |
|
Uint32 _mask; |
|
HttpMethod _httpMethod; |
|
|
|
Boolean _close_connect; |
|
|
|
// << Tue Jul 1 11:02:35 2003 mdd >> pep_88 and helper for i18n and l10n |
|
ThreadType _last_thread_id; |
|
|
|
Message* _async; |
|
|
|
public: |
|
Uint32 dest; | Uint32 dest; |
| |
private: | private: |
|
|
Message& operator=(const Message& msg); | Message& operator=(const Message& msg); |
| |
|
MessageType _type; |
|
Uint32 _mask; |
|
|
|
HttpMethod _httpMethod; |
|
Boolean _httpCloseConnect; |
|
|
Boolean _isComplete; | Boolean _isComplete; |
Uint32 _index; | Uint32 _index; |
|
|
|
Message* _async; |
}; | }; |
| |
| |
|
|
/** Make a copy of this stack and then pop the top element. */ | /** Make a copy of this stack and then pop the top element. */ |
QueueIdStack copyAndPop() const; | QueueIdStack copyAndPop() const; |
| |
|
Uint32 operator[](Uint32 i) const { return _items[i]; } |
|
|
private: | private: |
| |
// Copy the given stack but then pop the top element: | // Copy the given stack but then pop the top element: |