ptolemy.distributed.client
Class ClientThread

java.lang.Object
  extended by java.lang.Thread
      extended by ptolemy.distributed.client.ClientThread
All Implemented Interfaces:
java.lang.Runnable

public class ClientThread
extends java.lang.Thread

Thread that manages the interaction with the remote service. It is required to allow commands to be issued to the remote services in parallel. This threads prevent the main thread of execution to be blocked by the remote calls to the remote services. A synchronization mechanism to issue and access commands is provided by ThreadSynchronizer.

Since:
Ptolemy II 5.1
Version:
$Id: ClientThread.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Daniel Lazaro Cuadrado (kapokasa@kom.aau.dk)
See Also:
ThreadSynchronizer
Accepted Rating:
Red (cxh)
Proposed Rating:
Red (kapokasa)

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
static int EXIT
          Exit command.
static int FIRE
          Fire command.
static int INITIALIZE
          Initialize command.
static int ITERATE
          Iterate command.
private  int iterationCount
          The number of times the iteration command is to be performed.
private  net.jini.core.lookup.ServiceItem service
          The ServiceItem managed by this thread.
private  ThreadSynchronizer synchronizer
          The ThreadSynchronizer that synchronizes access to the commands.
private  boolean VERBOSE
          It states whether debugging messages should be printed.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ClientThread(ThreadSynchronizer synchr, net.jini.core.lookup.ServiceItem serv)
          Construct a ClientThread with a given ThreadSynchronizer and a given service.
 
Method Summary
 net.jini.core.lookup.ServiceItem getService()
          Return the service that this ClientThread controls.
 void run()
          Runs the thread.
 void setIterationCount(int iterationC)
          Specify the number of times that the iteration command is to be performed.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EXIT

public static final int EXIT
Exit command.

See Also:
Constant Field Values

INITIALIZE

public static final int INITIALIZE
Initialize command.

See Also:
Constant Field Values

FIRE

public static final int FIRE
Fire command.

See Also:
Constant Field Values

ITERATE

public static final int ITERATE
Iterate command.

See Also:
Constant Field Values

VERBOSE

private boolean VERBOSE
It states whether debugging messages should be printed.


synchronizer

private ThreadSynchronizer synchronizer
The ThreadSynchronizer that synchronizes access to the commands.


service

private net.jini.core.lookup.ServiceItem service
The ServiceItem managed by this thread.


iterationCount

private int iterationCount
The number of times the iteration command is to be performed.

Constructor Detail

ClientThread

public ClientThread(ThreadSynchronizer synchr,
                    net.jini.core.lookup.ServiceItem serv)
Construct a ClientThread with a given ThreadSynchronizer and a given service.

Parameters:
synchr - A ThreadSynchronizer.
serv - The service corresponding to the remote service that the Client Thread represents.
Method Detail

getService

public net.jini.core.lookup.ServiceItem getService()
Return the service that this ClientThread controls.

Returns:
A ServiceItem corresponding to the service this Client Thread is managing remotely.

run

public void run()
Runs the thread. The thread blocks until it gets a command. When a command is fetched, the service performs remotely the method corresponding to the given command. Once the task is performed, the thread is set to ready in the synchronizer. This is performed until de command is exit.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

setIterationCount

public void setIterationCount(int iterationC)
Specify the number of times that the iteration command is to be performed. We assume that this will be set correctly before iterate is called.

Parameters:
iterationC - Number of times the iteration has to be performed.