Class RemoteOperationExecutor

java.lang.Object
org.apfloat.samples.RemoteOperationExecutor
All Implemented Interfaces:
OperationExecutor
Direct Known Subclasses:
PiDistributed.Node

public class RemoteOperationExecutor extends Object implements OperationExecutor
Class to call an OperationServer to execute Operations remotely.
Version:
1.9.0
  • Field Details

    • BUFFER_SIZE

      private static final int BUFFER_SIZE
      See Also:
    • host

      private String host
    • port

      private int port
  • Constructor Details

    • RemoteOperationExecutor

      public RemoteOperationExecutor(String host, int port)
      Create a new client that will connect to the server running at the specified host and port.
      Parameters:
      host - Hostname of the remote server.
      port - Port of the remote server.
  • Method Details

    • execute

      public <T> T execute(Operation<T> operation)
      Execute an operation remotely. This method will block until the return value has been received.
      Specified by:
      execute in interface OperationExecutor
      Type Parameters:
      T - Return value type of the operation.
      Parameters:
      operation - The operation to execute remotely.
      Returns:
      The result of the operation.
      Throws:
      RuntimeException - In case of network error or if the return value class is unknown.
    • executeBackground

      public <T> BackgroundOperation<T> executeBackground(Operation<T> operation)
      Execute an operation remotely. This method starts a new thread running the remote call and returns immediately.
      Specified by:
      executeBackground in interface OperationExecutor
      Type Parameters:
      T - Return value type of the operation.
      Parameters:
      operation - The operation to execute remotely.
      Returns:
      A BackgroundOperation for retrieving the result of the operation later.
    • getWeight

      public int getWeight()
      Description copied from interface: OperationExecutor
      Returns the relative weight of this executor. The weights of different operation executors can be used to distribute work more equally.
      Specified by:
      getWeight in interface OperationExecutor
      Returns:
      The relative weight of this operation executor.
    • getHost

      public String getHost()
      Returns the host name.
      Returns:
      The host name.
    • getPort

      public int getPort()
      Returns the host port.
      Returns:
      The host port.