/*
* File : RPRequest.java
* Created : 28-Jan-2004
* By : parg
*
* Azureus - a Java Bittorrent client
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details ( see the LICENSE file ).
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.gudy.azureus2.pluginsimpl.remote;
import java.io.Serializable;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.logging.LoggerChannel;
/**
* @author parg
*
*/
public class
RPRequest
implements Serializable
{
// don't change these names as they end up in XML serialised data
public RPObject object;
public String method;
public Object[] params;
protected transient PluginInterface plugin_interface;
protected transient LoggerChannel channel;
public long connection_id;
public long request_id;
protected transient String client_ip;
// public constructor for XML deserialiser
public
RPRequest()
{
}
public
RPRequest(
RPObject _object,
String _method,
Object[] _params )
{
object = _object;
method = _method;
params = _params;
if ( object != null ){
RPPluginInterface pi = object.getDispatcher().getPlugin();
connection_id = pi._getConectionId();
request_id = pi._getNextRequestId();
plugin_interface = (PluginInterface)pi._getDelegate();
}
}
public void
setClientIP(
String str )
{
client_ip = str;
}
public String
getClientIP()
{
return( client_ip );
}
public long
getConnectionId()
{
return( connection_id );
}
public long
getRequestId()
{
return( request_id );
}
public String
getString()
{
return( "object=" + object + ", method=" + method + ", params=" + params );
}
public RPObject
getObject()
{
return( object );
}
public String
getMethod()
{
return( method );
}
public Object[]
getParams()
{
return( params );
}
public PluginInterface getPluginInterface() {
return this.plugin_interface;
}
public void setPluginInterface(PluginInterface pi) {
this.plugin_interface = pi;
}
public LoggerChannel getRPLoggerChannel() {
return this.channel;
}
public void setRPLoggerChannel(LoggerChannel channel) {
this.channel = channel;
}
// Can be overridden by subclasses.
public RPPluginInterface createRemotePluginInterface(PluginInterface pi) {
return RPPluginInterface.create(pi);
}
}