package org.jwebsocket.client.plugins.rpc; import org.jwebsocket.client.token.BaseTokenClient; import org.jwebsocket.kit.WebSocketException; import org.jwebsocket.plugins.rpc.AbstractRpc; import org.jwebsocket.token.Token; /** * Class used to call a Rpc method (C2S) * Example: new Rpc.Call("com.org.aClass", "aMethod").send("hello", "it's a rrpc call", 123) * @author Quentin Ambard */ public class Rpc extends AbstractRpc { private static BaseTokenClient mDefaultBaseTokenClient ; public static void setDefaultBaseTokenClient (BaseTokenClient aBaseTokenClient) { mDefaultBaseTokenClient = aBaseTokenClient ; } private BaseTokenClient mBaseTokenClient; public Rpc (String aClassname, String aMethod) { super(aClassname, aMethod); } public Rpc (String aClassname, String aMethod, boolean aSpawnTread) { super(aClassname, aMethod, aSpawnTread); } public Rpc (Token aToken) { super(aToken); } /** * Usefull if you have 2 jwebsocket connexions in the same client. * @param aBaseTokenClient the baseTokenClient that will be used to make the call. */ public AbstractRpc using (BaseTokenClient aBaseTokenClient) { mBaseTokenClient = aBaseTokenClient; return this; } public Token call () { //use the default BaseTokenClient if not specified if (mBaseTokenClient == null) { mBaseTokenClient = mDefaultBaseTokenClient ; } if (mBaseTokenClient == null) { return null; } else { Token lRpcToken = super.call(); try { mBaseTokenClient.sendToken(lRpcToken); } catch (WebSocketException e) { return null ; } return lRpcToken; } } }