version 1.3, 2004/01/16 20:32:41
|
version 1.20.8.1, 2006/02/10 16:11:33
|
|
|
//%2003//////////////////////////////////////////////////////////////////////// |
//%2006//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Development |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
// Company, L. P., IBM Corp., 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.; | // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; |
// IBM Corp.; EMC Corporation, The Open Group. | // 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. |
|
// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; Symantec 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 |
|
|
The InteropProvider provides information and manipulates the | The InteropProvider provides information and manipulates the |
following classes from the DMTF CIM_Interop schema: | following classes from the DMTF CIM_Interop schema: |
CIM_Namespace - Creation and deletion of namespaces | CIM_Namespace - Creation and deletion of namespaces |
|
Note: Effective Pegasus 2.4, it processes PG_Namespace |
__Namespace - Creation and deletion of namespaces (deprecated) | __Namespace - Creation and deletion of namespaces (deprecated) |
CIM_ObjectManager - Reports on the status of the object manager | CIM_ObjectManager - Reports on the status of the object manager |
CIM_ObjectManagerCommunicationMechanism - Reports on CIMOM communications | CIM_ObjectManagerCommunicationMechanism - Reports on CIMOM communications |
|
|
| |
This provider implements the following functions: | This provider implements the following functions: |
- createInstance ( adds a new namespace to the repository) | - createInstance ( adds a new namespace to the repository) |
- getInstance ( Gets one instance containing a namespace name) |
- getInstance ( Gets one instance of any supported object) |
- modifyInstance ( Not supported ) |
- modifyInstance ( Limited Support - selected fields in CIM_Namespace) |
- enumerateInstances ( Lists all namespaces as Instances) |
- enumerateInstances ( Lists all namespaces of all supported classes) |
- enumerateInstanceNames ( Lists all namespace names ) |
- enumerateInstanceNames ( Lists all namespace names of all supported classes ) |
|
- reference and associations |
TBD | TBD |
*/ | */ |
| |
|
|
{ | { |
public: | public: |
| |
InteropProvider(CIMRepository* repository) |
InteropProvider(CIMRepository* repository); |
{ |
|
PEG_METHOD_ENTER(TRC_CONTROLPROVIDER,"InteropProvider::InteropProvider"); |
|
_repository = repository; |
|
PEG_METHOD_EXIT(); |
|
} |
|
|
|
virtual ~InteropProvider() | virtual ~InteropProvider() |
{ | { |
PEG_METHOD_ENTER(TRC_CONTROLPROVIDER,"InteropProvider::~InteropProvider"); | PEG_METHOD_ENTER(TRC_CONTROLPROVIDER,"InteropProvider::~InteropProvider"); |
|
|
const CIMInstance& modifiedIns, | const CIMInstance& modifiedIns, |
const Boolean includeQualifiers, | const Boolean includeQualifiers, |
const CIMPropertyList& propertyList, | const CIMPropertyList& propertyList, |
ResponseHandler & handler) |
ResponseHandler & handler); |
{ |
|
throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED, ""); |
|
} |
|
| |
virtual void enumerateInstances( | virtual void enumerateInstances( |
const OperationContext & context, | const OperationContext & context, |
|
|
| |
void terminate(void) | void terminate(void) |
{ | { |
|
// delete self. this is necessary because the entry point for this object allocated it, and |
|
// the module is responsible for its memory management. |
|
delete this; |
} | } |
| |
private: | private: |
| |
CIMObjectPath InteropProvider::_buildInstancePath(const CIMNamespaceName& name, |
CIMInstance _buildInstanceSkeleton( |
const CIMName className, |
const CIMObjectPath & objectPath, |
|
const CIMName& className, |
|
CIMClass& returnedClass); |
|
|
|
CIMObjectPath _buildObjectPath( |
|
const CIMObjectPath& objectPath, |
|
const CIMName& className, |
|
const CIMInstance& instance); |
|
CIMObjectPath _buildInstancePath( |
|
const CIMObjectPath& objectPath, |
|
const CIMName& className, |
const CIMInstance& instance); | const CIMInstance& instance); |
| |
CIMClass _getClass(const CIMNamespaceName& nameSpace, const CIMName& className); |
CIMClass _getClass(const CIMObjectPath& objectPath, |
|
const CIMName& className); |
| |
Array<CIMNamespaceName> _enumerateNameSpaces(); | Array<CIMNamespaceName> _enumerateNameSpaces(); |
| |
CIMInstance _buildInstanceCIMObjectManager(); |
CIMInstance _buildInstancePGCIMXMLCommunicationMechanism( |
|
const CIMObjectPath& objectPath, |
|
const String& namespaceType, |
|
const Uint16& accessProtocol, |
|
const String& IPAddress); |
|
|
|
Array<CIMInstance> _buildInstancesPGCIMXMLCommunicationMechanism( |
|
const CIMObjectPath& objectPath); |
|
|
|
CIMInstance _getInstanceCIMObjectManager( |
|
const CIMObjectPath& objectPath, |
|
const Boolean includeQualifiers, |
|
const Boolean includeClassOrigin, |
|
const CIMPropertyList& propertyList); |
|
|
|
String _getObjectManagerName(); |
|
|
|
Array<CIMInstance> _getInstancesCIMNamespace( |
|
const CIMObjectPath& objectPath); |
|
|
|
CIMInstance _getInstanceCIMNamespace( |
|
const CIMObjectPath& objectPath); |
// | // |
|
CIMInstance _buildInstancePGNamespace( |
|
const CIMObjectPath& objectPath, |
|
CIMNamespaceName& nameSpace); |
|
|
|
Array<CIMInstance> _buildInstancesNamespaceInManager( |
|
const CIMObjectPath& objectPath); |
|
|
|
Array<CIMInstance> _buildInstancesCommMechanismForManager( |
|
const CIMObjectPath& objectPath); |
|
|
|
Boolean _getInstanceFromRepositoryCIMObjectManager( |
|
const CIMObjectPath& objectPath, |
|
CIMInstance& rtnInstance, |
|
const Boolean includeQualifiers, |
|
const Boolean includeClassOrigin, |
|
const CIMPropertyList& propertyList); |
|
|
|
Boolean isModifyAllowed(const OperationContext & context, |
|
const CIMObjectPath & instanceReference, |
|
const CIMInstance& modifiedIns, |
|
const Boolean includeQualifiers, |
|
const CIMPropertyList& propertyList, |
|
const CIMPropertyList& allowedModifyProperties); |
|
|
|
void modifyObjectManagerInstance(const OperationContext & context, |
|
const CIMObjectPath & instanceReference, |
|
const CIMInstance& modifiedIns, |
|
const Boolean includeQualifiers, |
|
const CIMPropertyList& propertyList); |
|
|
|
// The following are internal equivalents of the operations |
|
// allowing the operations to call one another internally within |
|
// the provider. |
|
Array<CIMInstance> localEnumerateInstances( |
|
const OperationContext & context, |
|
const CIMObjectPath & ref, |
|
const Boolean includeQualifiers, |
|
const Boolean includeClassOrigin, |
|
const CIMPropertyList& propertyList); |
|
|
|
Array<CIMObject> localReferences( |
|
const OperationContext & context, |
|
const CIMObjectPath & objectName, |
|
const CIMName & resultClass, |
|
const String & role, |
|
const Boolean includeQualifiers, |
|
const Boolean includeClassOrigin, |
|
const CIMPropertyList & propertyList); |
|
|
|
CIMInstance localGetInstance( |
|
const OperationContext & context, |
|
const CIMObjectPath & instanceName, |
|
const Boolean includeQualifiers, |
|
const Boolean includeClassOrigin, |
|
const CIMPropertyList & propertyList); |
|
|
// Repository Instance variable | // Repository Instance variable |
// |
|
CIMRepository* _repository; | CIMRepository* _repository; |
CIMClass * _cimNamespaceClass; |
// local save for name of object manager |
CIMNamespaceName _operationNamespace; |
String _objectManagerName; |
CIMInstance instanceOfCIMObjectManager; |
|
}; | }; |
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |