(file) Return to InteropProvider.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ControlProviders / InteropProvider

Diff for /pegasus/src/Pegasus/ControlProviders/InteropProvider/InteropProvider.h between version 1.20.8.1 and 1.20.10.3

version 1.20.8.1, 2006/02/10 16:11:33 version 1.20.10.3, 2006/03/21 19:20:25
Line 32 
Line 32 
 // Author: Karl Schopmeyer (k.schopmeyer@opengrooup.org) // Author: Karl Schopmeyer (k.schopmeyer@opengrooup.org)
 // //
 // Modified By: // Modified By:
   //              Alex Dunfey, EMC (Dunfey_alexander@emc.com) for PEP 244
 // //
 //%//////////////////////////////////////////////////////////////////////////// //%////////////////////////////////////////////////////////////////////////////
  
Line 61 
Line 62 
 #include <Pegasus/Provider/CIMInstanceProvider.h> #include <Pegasus/Provider/CIMInstanceProvider.h>
 #include <Pegasus/Provider/CIMAssociationProvider.h> #include <Pegasus/Provider/CIMAssociationProvider.h>
  
 PEGASUS_NAMESPACE_BEGIN  PEGASUS_USING_PEGASUS;
  
 /** /**
     The InteropProvider provides information and manipulates the   * The InteropProvider services the Interop classes of the DMTF CIM Schema
     following classes from the DMTF CIM_Interop schema:   * in the root/PG_InterOp namespace (as well as some related cross-namespace
     CIM_Namespace - Creation and deletion of namespaces   * associations in other namespaces). Through this implementation, combined
     Note: Effective Pegasus 2.4, it processes PG_Namespace   * with the SLP provider and one or more vendor-supplied SMI providers, the
     __Namespace - Creation and deletion of namespaces (deprecated)   * Pegasus WBEM Server is able to provide a fully-functional implementation of
     CIM_ObjectManager - Reports on the status of the object manager   * the SMI-S Server profile (currently, version 1.1.0).
     CIM_ObjectManagerCommunicationMechanism - Reports on CIMOM communications   *
     COM_CIMXMLCommunicationMechanism - Reports on CIMXML communications   * The following is a list of the association and instance classes supported
     CIM_ProtocolAdapter   * by this provider in the root/PG_InterOp namespace:
    *
     Associations   *  PG_CIMXMLCommunicationMechanism (CIM_CIMXMLCommunicationMechanism)
     NamespaceinManager   *  PG_CommMechanismForManager (CIM_CommMechanismForManager)
    *  PG_ComputerSystem (CIM_ComputerSystem)
     creation and deletion of namespaces using the __namespace class   *  PG_ElementConformsToProfile (CIM_ElementConformsToProfile)
     Note however, that the DMTF specification model does not define a class for   *  PG_ElementSoftwareIdentity (CIM_ElementSoftwareIdentity)
     __namespace so that it is, a "false" class.  We assume that it has the   *  PG_HostedAccessPoint (CIM_HostedAccessPoint)
     same characteristics as the CIM_namespace class defined in CIM 2.6.   *  PG_HostedObjectManager (CIM_HostedService)
    *  PG_InstalledSoftwareIdentity (CIM_InstalledSoftwareIdentity)
     This provider implements the following functions:   *  PG_Namespace (CIM_Namespace)
     - createInstance            ( adds a new namespace to the repository)   *  PG_NamespaceInManager (CIM_NamespaceInManager)
     - getInstance               ( Gets one instance of any supported object)   *  PG_ObjectManager (CIM_ObjectManager)
     - modifyInstance            ( Limited Support - selected fields in CIM_Namespace)   *  PG_ReferencedProfile (CIM_ReferencedProfile)
     - enumerateInstances        ( Lists all namespaces of all supported classes)   *  PG_RegisteredProfile (CIM_RegisteredProfile)
     - enumerateInstanceNames    ( Lists all namespace names of all supported classes )   *  PG_RegisteredSubProfile (CIM_RegisteredSubProfile)
     - reference and associations   *  PG_SoftwareIdentity (CIM_SoftwareIdentity)
     TBD   *  PG_SubProfileRequiredProfile (CIM_SubProfileRequiresProfile)
    *
 */ */
  
   typedef Array<CIMName> CIMNameArray;
   typedef Array<CIMNamespaceName> CIMNamespaceArray;
   
 class PEGASUS_INTEROPPROVIDER_LINKAGE InteropProvider : class PEGASUS_INTEROPPROVIDER_LINKAGE InteropProvider :
         public CIMInstanceProvider, public CIMAssociationProvider         public CIMInstanceProvider, public CIMAssociationProvider
 { {
Line 101 
Line 106 
     virtual ~InteropProvider()     virtual ~InteropProvider()
     {     {
         PEG_METHOD_ENTER(TRC_CONTROLPROVIDER,"InteropProvider::~InteropProvider");         PEG_METHOD_ENTER(TRC_CONTROLPROVIDER,"InteropProvider::~InteropProvider");
   
         PEG_METHOD_EXIT();         PEG_METHOD_EXIT();
     }     }
  
Line 145 
Line 149 
         const CIMObjectPath & classReference,         const CIMObjectPath & classReference,
         ObjectPathResponseHandler & handler);         ObjectPathResponseHandler & handler);
  
     // Association Interfaces  
  
         // CIMAssociationProvider interface         // CIMAssociationProvider interface
         virtual void associators(         virtual void associators(
Line 189 
Line 192 
     /**     /**
     Standard initialization function for the provider.     Standard initialization function for the provider.
     */     */
     void initialize(CIMOMHandle& cimomHandle)      void initialize(CIMOMHandle& handle)
     {     {
         printf("Init called on Interop provider\n");
         cimomHandle = handle;
     }     }
  
     void terminate(void)     void terminate(void)
     {     {
         // delete self. this is necessary because the entry point for this object allocated it, and         // delete self. this is necessary because the entry point for this object allocated it, and
         // the module is responsible for its memory management.         // the module is responsible for its memory management.
         delete this;          //delete this;
     }     }
  
 private: private:
  
     CIMInstance _buildInstanceSkeleton(      CIMInstance buildInstanceSkeleton(
         const CIMObjectPath & objectPath,          const CIMNamespaceName & nameSpace,
         const CIMName& className,         const CIMName& className,
         CIMClass& returnedClass);         CIMClass& returnedClass);
  
     CIMObjectPath _buildObjectPath(      CIMInstance buildCIMXMLCommunicationMechanismInstance(
         const CIMObjectPath& objectPath,          const String& namespaceType,
         const CIMName& className,          const Uint16& accessProtocol,
         const CIMInstance& instance);          const String& IPAddress,
     CIMObjectPath _buildInstancePath(          const CIMClass & commMechClass);
         const CIMObjectPath& objectPath,  
         const CIMName& className,  
         const CIMInstance& instance);  
  
     CIMClass _getClass(const CIMObjectPath& objectPath,      Array<CIMInstance> enumCIMXMLCommunicationMechanismInstances();
         const CIMName& className);  
  
     Array<CIMNamespaceName> _enumerateNameSpaces();      Array<CIMInstance> enumHostedAccessPointInstances();
  
     CIMInstance _buildInstancePGCIMXMLCommunicationMechanism(      CIMInstance getObjectManagerInstance();
         const CIMObjectPath& objectPath,  
         const String& namespaceType,  
         const Uint16& accessProtocol,  
         const String& IPAddress);  
  
     Array<CIMInstance> _buildInstancesPGCIMXMLCommunicationMechanism(      CIMInstance getComputerSystemInstance();
         const CIMObjectPath& objectPath);  
  
     CIMInstance _getInstanceCIMObjectManager(      CIMInstance getHostedObjectManagerInstance();
         const CIMObjectPath& objectPath,  
         const Boolean includeQualifiers,  
         const Boolean includeClassOrigin,  
         const CIMPropertyList& propertyList);  
  
     String _getObjectManagerName();      Array<CIMInstance> enumNamespaceInstances();
  
     Array<CIMInstance> _getInstancesCIMNamespace(      CIMInstance buildNamespaceInstance(const String & nameSpace);
         const CIMObjectPath& objectPath);  
  
     CIMInstance _getInstanceCIMNamespace(      Array<CIMInstance> enumNamespaceInManagerInstances();
         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,      Array<CIMInstance> enumCommMechanismForManagerInstances();
         const CIMObjectPath & instanceReference,  
         const CIMInstance& modifiedIns,  
         const Boolean includeQualifiers,  
         const CIMPropertyList& propertyList,  
         const CIMPropertyList& allowedModifyProperties);  
  
     void modifyObjectManagerInstance(const OperationContext & context,     void modifyObjectManagerInstance(const OperationContext & context,
         const CIMObjectPath & instanceReference,         const CIMObjectPath & instanceReference,
Line 274 
Line 242 
         const Boolean includeQualifiers,         const Boolean includeQualifiers,
         const CIMPropertyList& propertyList);         const CIMPropertyList& propertyList);
  
       void extractSoftwareIdentityInfo(
           const CIMInstance & providerInstance,
           String & moduleName,
           String & providerName,
           String & version,
           String & vendor,
           Uint16 & majorVersion,
           Uint16 & minorVersion,
           Uint16 & revision,
           Uint16 & build,
           bool & extendedVersionSupplied,
           String & interfaceType);
   
       Array<CIMInstance> enumRegisteredProfileInstances();
       Array<CIMInstance> enumRegisteredSubProfileInstances();
       Array<CIMInstance> enumReferencedProfileInstances();
       Array<CIMInstance> enumElementConformsToProfileInstances(
           const OperationContext & opContext,
           const CIMNamespaceName & opNamespace);
       Array<CIMInstance> enumSubProfileRequiresProfileInstances();
       Array<CIMInstance> enumSoftwareIdentityInstances();
       Array<CIMInstance> enumElementSoftwareIdentityInstances();
       Array<CIMInstance> enumInstalledSoftwareIdentityInstances();
   
       CIMInstance buildRegisteredProfile(
           const String & instanceId,
           const String & profileName,
           const String & profileVersion,
           Uint16 profileOrganization,
           const String & otherProfileOrganization,
           const CIMClass & profileClass);
   
       CIMInstance buildDependencyInstance(
           const String & antecedentId,
           const CIMName & antecedentClass,
           const String & dependentId,
           const CIMName & dependentClass,
           const CIMClass & dependencyClass);
   
       CIMInstance buildSoftwareIdentity(
           const String & module,
           const String & provider,
           const String & vendor,
           const String & version,
           Uint16 majorVersion,
           Uint16 minorVersion,
           Uint16 revisionNumber,
           Uint16 buildNumber,
           bool extendedVersionSupplied,
           const String & interfaceType);
   
       Array<CIMInstance> getProfileInstances(
           const CIMName & profileType,
           const Array<String> & defaultSniaProfiles);
   
     // The following are internal equivalents of the operations     // The following are internal equivalents of the operations
     // allowing the operations to call one another internally within     // allowing the operations to call one another internally within
     // the provider.     // the provider.
     Array<CIMInstance> localEnumerateInstances(     Array<CIMInstance> localEnumerateInstances(
         const OperationContext & context,         const OperationContext & context,
         const CIMObjectPath & ref,         const CIMObjectPath & ref,
         const Boolean includeQualifiers,          const CIMPropertyList& propertyList=CIMPropertyList());
         const Boolean includeClassOrigin,  
         const CIMPropertyList& propertyList);  
  
     Array<CIMObject> localReferences(      Array<CIMInstance> localReferences(
         const OperationContext & context,         const OperationContext & context,
         const CIMObjectPath & objectName,         const CIMObjectPath & objectName,
         const CIMName & resultClass,         const CIMName & resultClass,
         const String & role,          String & originRole,
         const Boolean includeQualifiers,          String & targetRole,
         const Boolean includeClassOrigin,          const CIMPropertyList & propertyList=CIMPropertyList(),
         const CIMPropertyList & propertyList);          const CIMName & targetClass=CIMName());
  
     CIMInstance localGetInstance(     CIMInstance localGetInstance(
         const OperationContext & context,         const OperationContext & context,
         const CIMObjectPath & instanceName,         const CIMObjectPath & instanceName,
         const Boolean includeQualifiers,  
         const Boolean includeClassOrigin,  
         const CIMPropertyList & propertyList);         const CIMPropertyList & propertyList);
  
       void cacheProfileRegistrationInfo();
       void verifyCachedInfo();
   
       bool validAssocClassForObject(
           const CIMName & assocClass, const CIMName & originClass,
           const CIMNamespaceName & opNamespace,
           String & originProperty, String & targetProperty);
   
         // Repository Instance variable         // Repository Instance variable
        CIMRepository*   _repository;      CIMOMHandle cimomHandle;
       CIMRepository * repository;
        // local save for name of object manager        // local save for name of object manager
        String _objectManagerName;      String objectManagerName;
       String hostName;
       CIMClass profileCapabilitiesClass;
       CIMClass softwareIdentityClass;
       Array<Uint16> providerClassifications;
       Mutex interopMut;
       bool namespacesInitialized;
   
       // Registration info to cache
       Array<String> profileIds;
       Array<CIMNameArray> conformingElements;
       Array<CIMNamespaceArray> elementNamespaces;
 }; };
  
 PEGASUS_NAMESPACE_END  
   
 #endif // InteropProvider_h #endif // InteropProvider_h


Legend:
Removed from v.1.20.8.1  
changed lines
  Added in v.1.20.10.3

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2