py4j
Class CommunicationChannelFactory

java.lang.Object
  extended by py4j.CommunicationChannelFactory

public class CommunicationChannelFactory
extends Object

A CommunicationChannelFactory is responsible for managing communication channels: channels are created as needed (e.g., one per concurrent thread) and are closed after a certain time.

Author:
Barthelemy Dagenais

Field Summary
static long DEFAULT_MIN_CONNECTION_TIME
           
 
Constructor Summary
CommunicationChannelFactory(int port)
           
CommunicationChannelFactory(int port, InetAddress address)
           
CommunicationChannelFactory(int port, InetAddress address, long minConnectionTime, TimeUnit minConnectionTimeUnit)
           
 
Method Summary
 void periodicCleanup()
           Closes communication channels that have not been used for a time specified at the creation of the communication channel factory.
 String sendCommand(String command)
           Sends a command to the Python side.
 void shutdown()
           Closes all active channels, stops the periodic cleanup of channels and mark the factory as shutting down.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MIN_CONNECTION_TIME

public static final long DEFAULT_MIN_CONNECTION_TIME
See Also:
Constant Field Values
Constructor Detail

CommunicationChannelFactory

public CommunicationChannelFactory(int port)

CommunicationChannelFactory

public CommunicationChannelFactory(int port,
                                   InetAddress address)

CommunicationChannelFactory

public CommunicationChannelFactory(int port,
                                   InetAddress address,
                                   long minConnectionTime,
                                   TimeUnit minConnectionTimeUnit)
Parameters:
port - The port used by channels to connect to the Python side.
address - The addressed used by channels to connect to the Python side..
minConnectionTime - The minimum connection time: channels are guaranteed to stay connected for this time after sending a command.
minConnectionTimeUnit - The minimum coonnection time unit.
Method Detail

sendCommand

public String sendCommand(String command)

Sends a command to the Python side. This method is typically used by Python proxies to call Python methods or to request the garbage collection of a proxy.

Parameters:
command - The command to send.
Returns:
The response.

shutdown

public void shutdown()

Closes all active channels, stops the periodic cleanup of channels and mark the factory as shutting down. No more commands can be send after this method has been called, except commands that were initiated before the shutdown method was called..


periodicCleanup

public void periodicCleanup()

Closes communication channels that have not been used for a time specified at the creation of the communication channel factory.

Clients should not directly call this method: it is called by a periodic cleaner thread.