//
// CIMImplementation.java
//
// The contents of this file are subject to the SNIA Public License Version 1.0
// (the "License"); you may not use this file except in compliance with the
// License. You may obtain a copy of the License at
//
//      http://www.snia.org/resources/openSource.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 CIMImplementation.java
//
// The Initial Developer of the Original Code is David Simons.
//
// Contributor(s):
//
//
// This source uses the Solaris WBEM APIs version 2.2.
// Synchronization will be maintained with the Solaris WBEM APIS,
// which are being standardized through the Java Community Process.
//
//
// $Id: CIMImplementation.java,v 1.1 2003/07/17 18:32:55 kumpf Exp $
//
//
//
package org.snia.wbemcmd.cimom;

import java.rmi.*;
import java.rmi.server.*;
import java.util.Enumeration;
import java.util.Vector;
import org.snia.wbem.client.*;
import org.snia.wbem.cim.*;



public interface CIMImplementation extends Remote {
    void createNameSpace(CIMNameSpace ns) throws RemoteException, CIMException;
    void deleteNameSpace(CIMNameSpace cns) throws RemoteException, CIMException;
    void deleteClass(CIMObjectPath path) throws RemoteException, CIMException;
    void deleteInstance(CIMObjectPath path) throws RemoteException, CIMException;
    void deleteQualifierType(CIMObjectPath path) throws RemoteException, CIMException;
    Enumeration enumNameSpace(CIMObjectPath path,boolean deep)
                        throws RemoteException, CIMException;
    Enumeration enumClass(CIMObjectPath path, boolean deep,boolean localOnly)
                        throws RemoteException, CIMException;
    Enumeration enumClass(CIMObjectPath path,
                   boolean deep) throws RemoteException, CIMException;
    Enumeration enumInstances(CIMObjectPath path,
                       boolean deep) throws RemoteException, CIMException;
    Enumeration enumInstances(CIMObjectPath path,
                       boolean deep,
                       boolean localOnly) throws RemoteException, CIMException;
    Enumeration enumQualifierTypes(CIMObjectPath path) throws RemoteException, CIMException;
    CIMClass getClass(CIMObjectPath name,
               boolean localOnly) throws RemoteException, CIMException;
    CIMInstance getInstance(CIMObjectPath name,
                     boolean localOnly) throws RemoteException, CIMException;
    CIMValue invokeMethod(CIMObjectPath name,
                   String methodName,
                   Vector inParams,
                   Vector outParams) throws RemoteException, CIMException;
    CIMQualifierType getQualifierType(CIMObjectPath name)
            throws RemoteException, CIMException;
    void createQualifierType(CIMObjectPath name,
                      CIMQualifierType qt) throws RemoteException, CIMException;

    void setQualifierType(CIMObjectPath name,
                   CIMQualifierType qt) throws RemoteException, CIMException;

    void createClass(CIMObjectPath name,CIMClass cc)
                    throws RemoteException, CIMException;
    void setClass(CIMObjectPath name,CIMClass cc)
           throws RemoteException, CIMException;

    CIMObjectPath createInstance(CIMObjectPath name,
                 CIMInstance ci) throws RemoteException, CIMException;
    void setInstance(CIMObjectPath name,
              CIMInstance ci) throws RemoteException, CIMException;

    CIMValue getProperty(CIMObjectPath name,
                  String propertyName) throws RemoteException, CIMException;
    void setProperty(CIMObjectPath name,
              String propertyName,
              CIMValue newValue) throws RemoteException, CIMException;

    void authenticate(String userName,String password) throws RemoteException,CIMException;
    public Enumeration associatorNames(CIMObjectPath path,String assocClass,
                                        String resultClass,
                                        String role,String resultRole) throws RemoteException, CIMException;
    public Enumeration associators(CIMObjectPath path,
                                        String assocClass,
                                        String resultClass,
                                        String role,
                                        String resultRole,
                                        boolean includeQualifiers,
                                        boolean includeClassOrigin,
                                        String propertyList[]) throws RemoteException,CIMException;
    public Enumeration referenceNames(CIMObjectPath path,
                                    String resultClass,
                                    String role) throws CIMException, RemoteException;
    public Enumeration references(CIMObjectPath path,String resultClass,
                                        String role,boolean includeQualifiers,
                                        boolean includeClassOrigin,
                                        String propertyList[])throws RemoteException,CIMException;
    public Enumeration execQuery(CIMObjectPath path,String query, int ql)
                                        throws RemoteException,CIMException;
}
