Package py4j
Class ClientServerConnection
- java.lang.Object
-
- py4j.ClientServerConnection
-
- All Implemented Interfaces:
java.lang.Runnable
,Py4JClientConnection
,Py4JServerConnection
public class ClientServerConnection extends java.lang.Object implements Py4JServerConnection, Py4JClientConnection, java.lang.Runnable
-
-
Field Summary
Fields Modifier and Type Field Description protected AuthCommand
authCommand
protected java.lang.String
authToken
protected int
blockingReadTimeout
protected java.util.Map<java.lang.String,Command>
commands
protected Py4JJavaServer
javaServer
protected java.util.logging.Logger
logger
protected int
nonBlockingReadTimeout
protected Py4JPythonClientPerThread
pythonClient
protected java.io.BufferedReader
reader
protected java.net.Socket
socket
protected java.io.BufferedWriter
writer
-
Constructor Summary
Constructors Constructor Description ClientServerConnection(Gateway gateway, java.net.Socket socket, java.util.List<java.lang.Class<? extends Command>> customCommands, Py4JPythonClientPerThread pythonClient, Py4JJavaServer javaServer, int readTimeout)
ClientServerConnection(Gateway gateway, java.net.Socket socket, java.util.List<java.lang.Class<? extends Command>> customCommands, Py4JPythonClientPerThread pythonClient, Py4JJavaServer javaServer, int readTimeout, java.lang.String authToken)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
fireConnectionStopped()
java.net.Socket
getSocket()
protected void
initCommands(Gateway gateway, java.util.List<java.lang.Class<? extends Command>> commandsClazz)
Override this method to initialize custom commands.boolean
isInitiatedFromClient()
protected void
quietSendFatalError(java.io.BufferedWriter writer, java.lang.Throwable exception)
protected java.lang.String
readBlockingResponse(java.io.BufferedReader reader)
protected java.lang.String
readNonBlockingResponse(java.net.Socket socket, java.io.BufferedReader reader)
void
run()
java.lang.String
sendCommand(java.lang.String command)
java.lang.String
sendCommand(java.lang.String command, boolean blocking)
void
setInitiatedFromClient(boolean initiatedFromClient)
void
setUsed(boolean used)
void
shutdown()
void
shutdown(boolean reset)
void
start()
void
startServerConnection()
void
waitForCommands()
boolean
wasUsed()
-
-
-
Field Detail
-
socket
protected java.net.Socket socket
-
writer
protected java.io.BufferedWriter writer
-
reader
protected java.io.BufferedReader reader
-
commands
protected final java.util.Map<java.lang.String,Command> commands
-
logger
protected final java.util.logging.Logger logger
-
javaServer
protected final Py4JJavaServer javaServer
-
pythonClient
protected final Py4JPythonClientPerThread pythonClient
-
blockingReadTimeout
protected final int blockingReadTimeout
-
nonBlockingReadTimeout
protected final int nonBlockingReadTimeout
-
authToken
protected final java.lang.String authToken
-
authCommand
protected final AuthCommand authCommand
-
-
Constructor Detail
-
ClientServerConnection
public ClientServerConnection(Gateway gateway, java.net.Socket socket, java.util.List<java.lang.Class<? extends Command>> customCommands, Py4JPythonClientPerThread pythonClient, Py4JJavaServer javaServer, int readTimeout) throws java.io.IOException
- Throws:
java.io.IOException
-
ClientServerConnection
public ClientServerConnection(Gateway gateway, java.net.Socket socket, java.util.List<java.lang.Class<? extends Command>> customCommands, Py4JPythonClientPerThread pythonClient, Py4JJavaServer javaServer, int readTimeout, java.lang.String authToken) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
startServerConnection
public void startServerConnection() throws java.io.IOException
- Throws:
java.io.IOException
-
run
public void run()
- Specified by:
run
in interfacejava.lang.Runnable
-
initCommands
protected void initCommands(Gateway gateway, java.util.List<java.lang.Class<? extends Command>> commandsClazz)
Override this method to initialize custom commands.
- Parameters:
gateway
-commandsClazz
-
-
fireConnectionStopped
protected void fireConnectionStopped()
-
quietSendFatalError
protected void quietSendFatalError(java.io.BufferedWriter writer, java.lang.Throwable exception)
-
getSocket
public java.net.Socket getSocket()
- Specified by:
getSocket
in interfacePy4JServerConnection
- Returns:
- The socket used by this gateway connection.
-
waitForCommands
public void waitForCommands()
-
sendCommand
public java.lang.String sendCommand(java.lang.String command)
- Specified by:
sendCommand
in interfacePy4JClientConnection
-
sendCommand
public java.lang.String sendCommand(java.lang.String command, boolean blocking)
- Specified by:
sendCommand
in interfacePy4JClientConnection
-
shutdown
public void shutdown()
- Specified by:
shutdown
in interfacePy4JClientConnection
- Specified by:
shutdown
in interfacePy4JServerConnection
-
shutdown
public void shutdown(boolean reset)
- Specified by:
shutdown
in interfacePy4JClientConnection
- Specified by:
shutdown
in interfacePy4JServerConnection
-
start
public void start() throws java.io.IOException
- Specified by:
start
in interfacePy4JClientConnection
- Throws:
java.io.IOException
-
setUsed
public void setUsed(boolean used)
- Specified by:
setUsed
in interfacePy4JClientConnection
-
wasUsed
public boolean wasUsed()
- Specified by:
wasUsed
in interfacePy4JClientConnection
-
isInitiatedFromClient
public boolean isInitiatedFromClient()
-
setInitiatedFromClient
public void setInitiatedFromClient(boolean initiatedFromClient)
-
readBlockingResponse
protected java.lang.String readBlockingResponse(java.io.BufferedReader reader) throws java.io.IOException
- Throws:
java.io.IOException
-
readNonBlockingResponse
protected java.lang.String readNonBlockingResponse(java.net.Socket socket, java.io.BufferedReader reader) throws java.io.IOException
- Throws:
java.io.IOException
-
-