org.apache.xmlrpc.common
Class XmlRpcWorkerFactory

java.lang.Object
  extended by org.apache.xmlrpc.common.XmlRpcWorkerFactory

public abstract class XmlRpcWorkerFactory
extends java.lang.Object

A factory for XmlRpcWorker instances.


Field Summary
private  XmlRpcController controller
           
private  int numThreads
           
private  java.util.List pool
           
private  XmlRpcWorker singleton
           
 
Constructor Summary
XmlRpcWorkerFactory(XmlRpcController pController)
          Creates a new instance.
 
Method Summary
 XmlRpcController getController()
          Returns the factory controller.
 int getCurrentRequests()
          Returns the number of currently running requests.
 XmlRpcWorker getWorker()
          Returns a worker for synchronous processing.
protected abstract  XmlRpcWorker newWorker()
          Creates a new worker instance.
 void releaseWorker(XmlRpcWorker pWorker)
          Called, when the worker did its job.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

singleton

private final XmlRpcWorker singleton

controller

private final XmlRpcController controller

pool

private final java.util.List pool

numThreads

private int numThreads
Constructor Detail

XmlRpcWorkerFactory

public XmlRpcWorkerFactory(XmlRpcController pController)
Creates a new instance.

Parameters:
pController - The client controlling the factory.
Method Detail

newWorker

protected abstract XmlRpcWorker newWorker()
Creates a new worker instance.

Returns:
New instance of XmlRpcWorker.

getController

public XmlRpcController getController()
Returns the factory controller.

Returns:
The controller, an instance of org.apache.xmlrpc.client.XmlRpcClient, or org.apache.xmlrpc.server.XmlRpcServer.

getWorker

public XmlRpcWorker getWorker()
                       throws XmlRpcLoadException
Returns a worker for synchronous processing.

Returns:
An instance of XmlRpcWorker, which is ready for use.
Throws:
XmlRpcLoadException - The clients maximum number of concurrent threads is exceeded.

releaseWorker

public void releaseWorker(XmlRpcWorker pWorker)
Called, when the worker did its job. Frees resources and decrements the number of concurrent requests.

Parameters:
pWorker - The worker being released.

getCurrentRequests

public int getCurrentRequests()
Returns the number of currently running requests.

Returns:
Current number of concurrent requests.