version 1.34.2.1, 2002/10/25 20:49:43
|
version 1.40, 2005/03/10 00:38:17
|
|
|
//%///////////-*-c++-*-///////////////////////////////////////////////////////// |
//%2005//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM, |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
// The Open Group, Tivoli Systems |
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
|
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
// IBM Corp.; EMC Corporation, The Open Group. |
|
// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; VERITAS Software 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 |
|
|
// | // |
// Author: Mike Day (mdday@us.ibm.com) <<< Wed Mar 13 20:49:40 2002 mdd >>> | // Author: Mike Day (mdday@us.ibm.com) <<< Wed Mar 13 20:49:40 2002 mdd >>> |
// | // |
// Modified By: |
// Modified By: Amit K Arora, IBM (amita@in.ibm.com) |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
|
|
#include <Pegasus/Common/MessageQueueService.h> | #include <Pegasus/Common/MessageQueueService.h> |
#include <Pegasus/Common/peg_authorization.h> | #include <Pegasus/Common/peg_authorization.h> |
#include <Pegasus/Common/Linkage.h> | #include <Pegasus/Common/Linkage.h> |
#include <Pegasus/Common/String.h> |
#include <Pegasus/Common/AutoPtr.h> |
| |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
|
|
| |
| |
Mutex _thread_safety; | Mutex _thread_safety; |
ModuleController *_controller; |
AutoPtr<ModuleController> _controller;//PEP101 |
String _name; | String _name; |
AtomicInt _reference_count; | AtomicInt _reference_count; |
AtomicInt _shutting_down; | AtomicInt _shutting_down; |
|
|
| |
private: | private: |
| |
module_rep *_rep; |
AutoPtr<module_rep> _rep;//PEP101 |
| |
pegasus_module(void) | pegasus_module(void) |
{ | { |
|
|
~callback_handle() | ~callback_handle() |
{ | { |
if( _module->get_name() == String(PEGASUS_MODULENAME_TEMP) ) | if( _module->get_name() == String(PEGASUS_MODULENAME_TEMP) ) |
delete _module; |
// delete _module; |
|
_module.reset(); |
} | } |
| |
pegasus_module * _module; |
AutoPtr<pegasus_module> _module;//PEP101 |
void *_parm; | void *_parm; |
}; | }; |
| |
|
|
/* Sint16 min_threads, */ | /* Sint16 min_threads, */ |
/* Sint16 max_threads, */ | /* Sint16 max_threads, */ |
/* struct timeval & create_thread, */ | /* struct timeval & create_thread, */ |
/* struct timeval & destroy_thread, */ |
/* struct timeval & destroy_thread); */ |
/* struct timeval & deadlock); */ |
|
| |
| |
~ModuleController(void); | ~ModuleController(void); |
|
|
virtual void _handle_async_callback(AsyncOpNode *op); | virtual void _handle_async_callback(AsyncOpNode *op); |
| |
private: | private: |
|
|
|
|
|
class _module_lock |
|
{ |
|
public: |
|
_module_lock(DQueue<pegasus_module> * list) |
|
:_list(list) |
|
{ |
|
_list->lock(); |
|
|
|
} |
|
~_module_lock(void) |
|
{ |
|
_list->unlock(); |
|
} |
|
|
|
|
|
private: |
|
_module_lock(); |
|
DQueue<pegasus_module> * _list; |
|
}; |
|
|
|
|
|
|
static void _async_handleEnqueue(AsyncOpNode *h, MessageQueue *q, void *parm); | static void _async_handleEnqueue(AsyncOpNode *h, MessageQueue *q, void *parm); |
DQueue<pegasus_module> _modules; | DQueue<pegasus_module> _modules; |
pegasus_module _internal_module; | pegasus_module _internal_module; |
|
|
| |
| |
| |
|
|
|
|
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
| |