version 1.32, 2002/07/26 20:01:19
|
version 1.36, 2003/10/22 14:26:03
|
|
|
//%///////////-*-c++-*-///////////////////////////////////////////////////////// |
//%2003//////////////////////////////////////////////////////////////////////// |
// | // |
// 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. |
// | // |
// 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/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <Pegasus/Common/Constants.h> | #include <Pegasus/Common/Constants.h> |
#include <Pegasus/Common/Message.h> | #include <Pegasus/Common/Message.h> |
#include <Pegasus/Common/Exception.h> |
#include <Pegasus/Common/InternalException.h> |
#include <Pegasus/Common/IPC.h> | #include <Pegasus/Common/IPC.h> |
#include <Pegasus/Common/Thread.h> | #include <Pegasus/Common/Thread.h> |
#include <Pegasus/Common/AsyncOpNode.h> | #include <Pegasus/Common/AsyncOpNode.h> |
|
|
void (*shutdown_notify)(Uint32, void *), | void (*shutdown_notify)(Uint32, void *), |
pegasus_module **instance = NULL) | pegasus_module **instance = NULL) |
| |
throw(AlreadyExists, IncompatibleTypes); |
throw(AlreadyExistsException, IncompatibleTypesException); |
| |
Boolean deregister_module(const String & module_name) | Boolean deregister_module(const String & module_name) |
throw(Permission); | throw(Permission); |
|
|
| |
static ModuleController & get_client_handle(const pegasus_identity & id, | static ModuleController & get_client_handle(const pegasus_identity & id, |
client_handle **handle) | client_handle **handle) |
throw(IncompatibleTypes); |
throw(IncompatibleTypesException); |
| |
static ModuleController & get_client_handle(const char *controller, | static ModuleController & get_client_handle(const char *controller, |
const pegasus_identity & id, | const pegasus_identity & id, |
client_handle **handle) | client_handle **handle) |
throw(IncompatibleTypes); |
throw(IncompatibleTypesException); |
| |
| |
void return_client_handle(client_handle *handle); | void return_client_handle(client_handle *handle); |
|
|
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 |
| |
| |