/*
 *EXHIBIT A - Sun Industry Standards Source License
 *
 *"The contents of this file are subject to the Sun Industry
 *Standards Source License Version 1.2 (the "License");
 *You may not use this file except in compliance with the
 *License. You may obtain a copy of the 
 *License at http://wbemservices.sourceforge.net/license.html
 *
 *Software distributed under the License is distributed on
 *an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
 *express or implied. See the License for the specific
 *language governing rights and limitations under the License.
 *
 *The Original Code is WBEM Services.
 *
 *The Initial Developer of the Original Code is:
 *Sun Microsystems, Inc.
 *
 *Portions created by: Sun Microsystems, Inc.
 *are Copyright © 2002 Sun Microsystems, Inc.
 *
 *All Rights Reserved.
 *
 *Contributor(s): _______________________________________
 */

// ===================================================================
// Title:       WBEM Services 
// Filename:    WBEMServices.mof
// ===================================================================


[Provider("internal:java"),
 Description("Each instance becomes part of the classpath used by WBEMServices CIMOM"),
Version("1.2.0")
]
class WBEMServices_Classpath {
    [key,
    Description("A URL pointing to a jar file or directory to place on the classpath. If this specifies a file, you can use the special identifier {0} to indicate that the BASEDIR should be used.  The BASEDIR is the base install location.  For example, file://{0}/usr/sadm/lib/wbem/myjar.jar")]
    string pathurl;
};

[Description("This class represents the open WBEM Services object manager."),
Provider("internal:WBEMServices_ObjectManager"),
Version("1.2.0")]
class WBEMServices_ObjectManager : CIM_ObjectManager
{
    [Description("Version of this object manager.")]
    string Version;
    [Description("This method forces the object manager to process MOFs "
    "that have been set up in its MOF registration directory")]
    sint8 registerMOF();
};

[Description("This is the base class for protocol adapters. A protocol "
 "adapter is a service through which the CIMOM performs protocol mappings "
 "while communicating with external entities."),
Version("1.2.0")]
class WBEMServices_ObjectManagerProtocolAdapter : CIM_Service
{
    [Description("Class path for all the supporting classes that this "
    "protocol adapter needs.")]
    String classPath[];
    [Description("This represents the name of the class that provides the "
    "implementation for the particular protocol instance")]
    String ImplClass;
};

[Description("This class is the base class for all adapters that enable the "
 "Object manager to communciate with clients which perform CIM operations over "
 "different protocols"),
 Version("1.2.0"),
 Provider("internal:WBEMServices_ObjectManagerClientProtocolAdapter")]
class WBEMServices_ObjectManagerClientProtocolAdapter : WBEMServices_ObjectManagerProtocolAdapter
{
};

[Description ("This class represents the cim-xml protocol adapter which "
 "enables the object manager to communicate with clients using CIM operations "
 "over HTTP"),
 Version("1.2.0")]
class WBEMServices_CIMXMLObjectManagerClientProtocolAdapter : WBEMServices_ObjectManagerClientProtocolAdapter
{
    [Description("This is the port number on which the HTTP server listens. "
    "The default value is 5988")]
    uint32 PortNumber;
};

[Description ("This class represents the cim-rmi protocol adapter which "
 "enables the object manager to communicate with clients using CIM operations "
 "over RMI."),
 Version("1.2.0")]
class WBEMServices_RMIObjectManagerClientProtocolAdapter : WBEMServices_ObjectManagerClientProtocolAdapter
{
    [Description("This is the port number on which the RMI registry listens. "
    "The default value is 5987")]
    uint32 PortNumber;
};

[Description("This class is the base class for all adapters that enable the "
 "Object manager to communciate with providers using different protocols."),
 Version("1.2.0"),
 Provider("internal:WBEMServices_ObjectManagerProviderProtocolAdapter")]
class WBEMServices_ObjectManagerProviderProtocolAdapter : WBEMServices_ObjectManagerProtocolAdapter
{
    [Description("The protocolType is the keyword used in Provider qualifiers"
    "to denote the provider protocol to be used while contacting the specific"
    "provider")]
    string ProtocolType;
};

[Abstract,
 Version("1.2.0"),
 Description("This association is the base class for associations linking "
 "the object manager to its protocol adapter")]
class WBEMServices_ProtocolAdapterForManager : CIM_Dependency
{
      [Override ("Antecedent"), Min(1), Max(1), Description (
        "The specific Object Manager whose protocol adapter is "
        "described.") ]
    WBEMServices_ObjectManager REF Antecedent;

      [Override ("Dependent"), Min(1), Description (
         "The protocol adapter for the Object Manager.") ]
    WBEMServices_ObjectManagerProtocolAdapter REF Dependent;
};

[Description("This class represents the association between the the object "
 "manager and the client protocol adapter."),
 Version("1.2.0"),
 Provider("internal:WBEMServices_ClientProtocolAdapterForManager")]
class WBEMServices_ClientProtocolAdapterForManager : WBEMServices_ProtocolAdapterForManager
{
      [Override ("Dependent"), Min(1), Description (
         "The client protocol adapter for the Object Manager.") ]
    WBEMServices_ObjectManagerClientProtocolAdapter REF Dependent;
};

[Description("This class represents the association between the the object "
 "manager and the provider protocol adapter."),
 Version("1.2.0"),
 Provider("internal:WBEMServices_ProviderProtocolAdapterForManager")]
class WBEMServices_ProviderProtocolAdapterForManager : WBEMServices_ProtocolAdapterForManager
{
      [Override ("Dependent"), Min(1), Description (
         "The provider protocol adapter for the Object Manager.") ]
    WBEMServices_ObjectManagerProviderProtocolAdapter REF Dependent;
};

instance of WBEMServices_CIMXMLObjectManagerClientProtocolAdapter {

    Name                = "cim-xml";
    CreationClassName   = "WBEMServices_CIMXMLObjectManagerClientProtocolAdapter";
    StartMode           = "Automatic";
    Started		= true;
    SystemCreationClassName = "CIM_ComputerSystem";
    SystemName          = "junkyard";
    ImplClass           = "org.wbemservices.wbem.cimom.adapters.client.http.HttpService";
    Caption             = "Sun Java WBEM Protocol Adapter";
    Description         = "This is the Sun Java WBEM Protocol Adapter.";
    PortNumber		= 5988;
};

instance of WBEMServices_RMIObjectManagerClientProtocolAdapter {

    Name                = "cim-rmi";
    CreationClassName   = "WBEMServices_RMIObjectManagerClientProtocolAdapter";
    StartMode           = "Automatic";
    Started		= true;
    SystemCreationClassName = "CIM_ComputerSystem";
    SystemName          = "junkyard";
    ImplClass           = "org.wbemservices.wbem.cimom.adapters.client.rmi.CIMOMRMIImpl";
    Caption             = "Java RMI Protocol Adapter";
    Description         = "This is the Java RMI Protocol Adapter.";
    PortNumber		= 5987;
};

instance of WBEMServices_ObjectManagerProviderProtocolAdapter {

    Name                = "java";
    CreationClassName   = "WBEMServices_ObjectManagerProviderProtocolAdapter";
    StartMode           = "Automatic";
    Started             = true;
    SystemCreationClassName = "CIM_ComputerSystem";
    SystemName          = "junkyard";
    ImplClass           = "org.wbemservices.wbem.cimom.adapters.provider.java.JavaProviderAdapter";
    Caption             = "Java Provider Adapter";
    Description         = "This is the Java Provider Adapter.";
};

