version 1.72, 2008/12/04 18:23:07
|
version 1.77, 2008/12/19 12:00:36
|
|
|
class message_module; | class message_module; |
class cimom; | class cimom; |
| |
struct PollingListEntry; |
|
| |
class PEGASUS_COMMON_LINKAGE MessageQueueService : | class PEGASUS_COMMON_LINKAGE MessageQueueService : |
public MessageQueue |
public Linkable, public MessageQueue |
{ | { |
public: | public: |
| |
|
|
Boolean update_service(Uint32 capabilities, Uint32 mask); | Boolean update_service(Uint32 capabilities, Uint32 mask); |
Boolean deregister_service(); | Boolean deregister_service(); |
| |
Uint32 find_service_qid(const String &name); |
Uint32 find_service_qid(const char* name); |
static AsyncOpNode* get_op(); | static AsyncOpNode* get_op(); |
void return_op(AsyncOpNode* op); | void return_op(AsyncOpNode* op); |
Boolean isRunning() const { return _isRunning; } |
|
| |
static ThreadPool* get_thread_pool(); | static ThreadPool* get_thread_pool(); |
| |
PollingListEntry *pollingListEntry; |
AtomicInt _die; |
AtomicInt _threads; | AtomicInt _threads; |
Uint32 getIncomingCount() {return _incoming.count(); } | Uint32 getIncomingCount() {return _incoming.count(); } |
| |
|
|
| |
static cimom* _meta_dispatcher; | static cimom* _meta_dispatcher; |
static AtomicInt _service_count; | static AtomicInt _service_count; |
|
static Mutex _meta_dispatcher_mutex; |
static ThreadPool* _thread_pool; | static ThreadPool* _thread_pool; |
Boolean _isRunning; | Boolean _isRunning; |
private: | private: |
|
|
void* callback_ptr, | void* callback_ptr, |
Uint32 flags); | Uint32 flags); |
| |
|
void _removeFromPollingList(MessageQueueService *service); |
|
|
static ThreadReturnType PEGASUS_THREAD_CDECL polling_routine(void *); | static ThreadReturnType PEGASUS_THREAD_CDECL polling_routine(void *); |
| |
AsyncQueue<AsyncOpNode> _incoming; | AsyncQueue<AsyncOpNode> _incoming; |
|
|
static Semaphore _polling_sem; | static Semaphore _polling_sem; |
static AtomicInt _stop_polling; | static AtomicInt _stop_polling; |
| |
typedef List<PollingListEntry, NullLock> PollingList; |
typedef List<MessageQueueService, NullLock> PollingList; |
static PollingList* _polling_list; | static PollingList* _polling_list; |
|
static Mutex _polling_list_mutex; |
| |
static ThreadReturnType PEGASUS_THREAD_CDECL _req_proc(void *); | static ThreadReturnType PEGASUS_THREAD_CDECL _req_proc(void *); |
| |
static void _sendwait_callback(AsyncOpNode *, MessageQueue *, void *); |
|
|
|
AtomicInt _incoming_queue_shutdown; | AtomicInt _incoming_queue_shutdown; |
| |
friend class cimom; | friend class cimom; |