version 1.7, 2004/10/17 20:39:49
|
version 1.20.8.1, 2006/02/10 16:11:33
|
|
|
//%2004//////////////////////////////////////////////////////////////////////// |
//%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. |
|
|
// 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.; | // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. | // 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 |
|
|
| |
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 ( Limited Support) |
- 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"); |
|
|
| |
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: |
| |
|
CIMInstance _buildInstanceSkeleton( |
|
const CIMObjectPath & objectPath, |
|
const CIMName& className, |
|
CIMClass& returnedClass); |
| |
CIMInstance _buildInstanceSkeleton(const CIMName& className); |
CIMObjectPath _buildObjectPath( |
|
const CIMObjectPath& objectPath, |
CIMObjectPath _buildReference(const CIMInstance& instance, |
|
const CIMName& className); |
|
|
|
CIMObjectPath _buildObjectPath(const CIMNamespaceName& name, |
|
const CIMName& className, | const CIMName& className, |
const CIMInstance& instance); | const CIMInstance& instance); |
CIMObjectPath _buildInstancePath(const CIMNamespaceName& name, |
CIMObjectPath _buildInstancePath( |
|
const CIMObjectPath& objectPath, |
const CIMName& className, | 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 _buildInstancePGCIMXMLCommunicationMechanism( | CIMInstance _buildInstancePGCIMXMLCommunicationMechanism( |
|
const CIMObjectPath& objectPath, |
const String& namespaceType, | const String& namespaceType, |
const String& IPAddress, |
const Uint16& accessProtocol, |
const Boolean& includeQualifiers, |
const String& IPAddress); |
const Boolean& includeClassOrigin, |
|
const CIMPropertyList& propertyList); |
|
| |
Array<CIMInstance> _buildInstancesPGCIMXMLCommunicationMechanism( | Array<CIMInstance> _buildInstancesPGCIMXMLCommunicationMechanism( |
const Boolean includeQualifiers, |
const CIMObjectPath& objectPath); |
const Boolean includeClassOrigin, |
|
const CIMPropertyList& propertyList); |
|
| |
CIMInstance _buildInstanceCIMObjectManager(const Boolean includeQualifiers, |
CIMInstance _getInstanceCIMObjectManager( |
|
const CIMObjectPath& objectPath, |
|
const Boolean includeQualifiers, |
const Boolean includeClassOrigin, | const Boolean includeClassOrigin, |
const CIMPropertyList& propertyList); | const CIMPropertyList& propertyList); |
| |
Array<CIMInstance> _getInstancesCIMNamespace(const Boolean& includeQualifiers, |
String _getObjectManagerName(); |
const Boolean& includeClassOrigin, |
|
const CIMPropertyList& propertyList); |
|
| |
|
Array<CIMInstance> _getInstancesCIMNamespace( |
|
const CIMObjectPath& objectPath); |
| |
CIMInstance _getInstanceCIMNamespace(const CIMNamespaceName & nameSpace); |
CIMInstance _getInstanceCIMNamespace( |
|
const CIMObjectPath& objectPath); |
// | // |
CIMInstance _buildInstancePGNamespace(const CIMNamespaceName & nameSpace); |
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); |
| |
Array<CIMInstance> _buildInstancesNamespaceInManager(); |
Boolean isModifyAllowed(const OperationContext & context, |
|
const CIMObjectPath & instanceReference, |
|
const CIMInstance& modifiedIns, |
|
const Boolean includeQualifiers, |
|
const CIMPropertyList& propertyList, |
|
const CIMPropertyList& allowedModifyProperties); |
| |
Array<CIMInstance> _buildInstancesCommMechanismForManager(); |
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); |
| |
Boolean _getInstanceCIMObjectManager( |
Array<CIMObject> localReferences( |
|
const OperationContext & context, |
|
const CIMObjectPath & objectName, |
|
const CIMName & resultClass, |
|
const String & role, |
const Boolean includeQualifiers, | const Boolean includeQualifiers, |
const Boolean includeClassOrigin, | const Boolean includeClassOrigin, |
const CIMPropertyList& propertyList); | const CIMPropertyList& propertyList); |
| |
void modifyObjectManagerInstance(const OperationContext & context, |
CIMInstance localGetInstance( |
const CIMObjectPath & instanceReference, |
const OperationContext & context, |
const CIMInstance& modifiedIns, |
const CIMObjectPath & instanceName, |
const Boolean includeQualifiers, | const Boolean includeQualifiers, |
const CIMPropertyList& propertyList, |
const Boolean includeClassOrigin, |
ResponseHandler & handler); |
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 |