blob: a0b65363217a2bd82672ad5290b84c447492b671 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jem.internal.proxy.remote;
/*
* $RCSfile: IREMConnection.java,v $
* $Revision: 1.7 $ $Date: 2005/08/24 20:39:07 $
*/
import org.eclipse.jem.internal.proxy.common.CommandException;
import org.eclipse.jem.internal.proxy.common.remote.Commands;
/**
* Interface for the Remote VM Connection object.
*/
public interface IREMConnection {
/**
* Did this construct correctly.
* This is needed because an exception could be thrown in the ctor and
* that's not a good thing to do.
*/
public boolean isConnected();
/**
* Terminate the server.
* WARNING: This is only here so that factory can to it. Termination should ONLY
* be done by the Factory not any one else.
*/
public void terminateServer();
/**
* Close the connection.
*/
public void close();
/**
* Get the class information. Null return if not found.
*/
public Commands.GetClassReturn getClass(String className) throws CommandException;
/**
* Get the class information from the id.
*/
public Commands.GetClassIDReturn getClassFromID(int classID) throws CommandException;
/**
* Get object data from an id.
*/
public void getObjectData(int objectID, Commands.ValueObject valueReturn) throws CommandException;
/**
* Get a new instance using the initialization string.
*/
public void getNewInstance(int classID, String initString, Commands.ValueObject newInstance) throws CommandException;
/**
* Invoke the get array contents command.
* @param arrayID
* @param returnValue
* @throws CommandException
*
* @since 1.1.0
*/
public void getArrayContents(int arrayID, Commands.ValueObject returnValue) throws CommandException;
/**
* Invoke the method call.
* The parms valueObject must represent an Object[] (either through ARRAY_IDS or OBJECT)
*/
public void invokeMethod(int methodID, Commands.ValueObject invokeOn, Commands.ValueObject parms, Commands.ValueObject returnValue) throws CommandException;
/**
* Invoke the method call with method passed.
* The parms valueObject must represent an Object[] (either through ARRAY_IDS or OBJECT)
*/
public void invokeMethod(Commands.ValueObject classType, String methodName, Commands.ValueObject parmTypes, Commands.ValueObject invokeOn, Commands.ValueObject parms, Commands.ValueObject returnValue) throws CommandException;
/**
* Release the id. It is no longer needed on the client.
*/
public void releaseID(int id);
/**
* Read array values as BeanProxies into valueSender.
* @param returnValue
* @param valueSender
* @param allowFlag <code>true</code> to allow FLAG values, <code>false</code> if not allow flag values.
*
* @throws CommandException
*
* @since 1.1.0
*/
public void readProxyArrayValues(Commands.ValueObject returnValue, Commands.ValueSender valueSender, boolean allowFlag) throws CommandException;
}