edu.sc.seis.fissuresUtil.cache
Class DataCenterRouter
java.lang.Object
edu.sc.seis.fissuresUtil.cache.DataCenterRouter
- All Implemented Interfaces:
- edu.iris.Fissures.IfSeismogramDC.DataCenterOperations
- Direct Known Subclasses:
- HardCodeDataCenterRouter
public class DataCenterRouter
- extends java.lang.Object
- implements edu.iris.Fissures.IfSeismogramDC.DataCenterOperations
Routes data center requests to the correct datacenter. This allow the
calling object to deal with multiple datacenters without keeping track
of which networks come from which datacenters. The first datacenter to
return data for a particular request is assumed to have satisfied the
request. But if no data is returned, then the request propigates to the
next datacenter.
Created: Wed Jan 22 15:24:39 2003
Method Summary |
void |
addDataCenter(edu.iris.Fissures.IfNetwork.NetworkAccess[] net,
ProxySeismogramDC dc)
|
void |
addDataCenter(edu.iris.Fissures.IfNetwork.NetworkAccess net,
ProxySeismogramDC dc)
|
void |
addDataCenter(edu.iris.Fissures.IfNetwork.NetworkId networkId,
ProxySeismogramDC dc)
|
void |
addDataCenter(ProxySeismogramDC dc)
|
void |
addDataCenter(java.lang.String network_code,
ProxySeismogramDC dc)
|
edu.iris.Fissures.IfSeismogramDC.RequestFilter[] |
available_data(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] filters)
|
void |
cancel_request(java.lang.String a_request)
|
java.util.List |
getDataCenter(edu.iris.Fissures.IfNetwork.ChannelId chanId)
|
java.util.List |
getDataCenter(edu.iris.Fissures.IfNetwork.NetworkAccess net)
|
java.util.List |
getDataCenter(edu.iris.Fissures.IfNetwork.NetworkId networkId)
|
java.util.List |
getDataCenter(java.lang.String networkCode)
|
protected java.util.HashMap |
makeMap(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] filters)
Sorts the request filters into Lists indexed by the list of datacenters
that support each networkId. |
java.lang.String |
queue_seismograms(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] a_filterseq)
|
java.lang.String |
request_seismograms(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] filters,
edu.iris.Fissures.IfSeismogramDC.DataCenterCallBack a_client,
boolean long_lived,
edu.iris.Fissures.Time expiration_time)
|
java.lang.String |
request_status(java.lang.String a_request)
|
edu.iris.Fissures.IfSeismogramDC.LocalSeismogram[] |
retrieve_queue(java.lang.String a_request)
|
edu.iris.Fissures.IfSeismogramDC.LocalSeismogram[] |
retrieve_seismograms(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] filters)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
netToDCMap
protected java.util.HashMap netToDCMap
unmatchedDCList
protected java.util.List unmatchedDCList
DataCenterRouter
public DataCenterRouter()
addDataCenter
public void addDataCenter(ProxySeismogramDC dc)
addDataCenter
public void addDataCenter(edu.iris.Fissures.IfNetwork.NetworkAccess[] net,
ProxySeismogramDC dc)
addDataCenter
public void addDataCenter(edu.iris.Fissures.IfNetwork.NetworkAccess net,
ProxySeismogramDC dc)
addDataCenter
public void addDataCenter(edu.iris.Fissures.IfNetwork.NetworkId networkId,
ProxySeismogramDC dc)
addDataCenter
public void addDataCenter(java.lang.String network_code,
ProxySeismogramDC dc)
getDataCenter
public java.util.List getDataCenter(edu.iris.Fissures.IfNetwork.NetworkAccess net)
getDataCenter
public java.util.List getDataCenter(edu.iris.Fissures.IfNetwork.NetworkId networkId)
getDataCenter
public java.util.List getDataCenter(java.lang.String networkCode)
getDataCenter
public java.util.List getDataCenter(edu.iris.Fissures.IfNetwork.ChannelId chanId)
available_data
public edu.iris.Fissures.IfSeismogramDC.RequestFilter[] available_data(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] filters)
- Specified by:
available_data
in interface edu.iris.Fissures.IfSeismogramDC.DataCenterOperations
request_seismograms
public java.lang.String request_seismograms(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] filters,
edu.iris.Fissures.IfSeismogramDC.DataCenterCallBack a_client,
boolean long_lived,
edu.iris.Fissures.Time expiration_time)
throws edu.iris.Fissures.FissuresException
- Specified by:
request_seismograms
in interface edu.iris.Fissures.IfSeismogramDC.DataCenterOperations
- Throws:
edu.iris.Fissures.FissuresException
retrieve_seismograms
public edu.iris.Fissures.IfSeismogramDC.LocalSeismogram[] retrieve_seismograms(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] filters)
throws edu.iris.Fissures.FissuresException
- Specified by:
retrieve_seismograms
in interface edu.iris.Fissures.IfSeismogramDC.DataCenterOperations
- Throws:
edu.iris.Fissures.FissuresException
queue_seismograms
public java.lang.String queue_seismograms(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] a_filterseq)
throws edu.iris.Fissures.FissuresException
- Specified by:
queue_seismograms
in interface edu.iris.Fissures.IfSeismogramDC.DataCenterOperations
- Throws:
edu.iris.Fissures.FissuresException
retrieve_queue
public edu.iris.Fissures.IfSeismogramDC.LocalSeismogram[] retrieve_queue(java.lang.String a_request)
throws edu.iris.Fissures.FissuresException
- Specified by:
retrieve_queue
in interface edu.iris.Fissures.IfSeismogramDC.DataCenterOperations
- Throws:
edu.iris.Fissures.FissuresException
cancel_request
public void cancel_request(java.lang.String a_request)
throws edu.iris.Fissures.FissuresException
- Specified by:
cancel_request
in interface edu.iris.Fissures.IfSeismogramDC.DataCenterOperations
- Throws:
edu.iris.Fissures.FissuresException
request_status
public java.lang.String request_status(java.lang.String a_request)
throws edu.iris.Fissures.FissuresException
- Specified by:
request_status
in interface edu.iris.Fissures.IfSeismogramDC.DataCenterOperations
- Throws:
edu.iris.Fissures.FissuresException
makeMap
protected java.util.HashMap makeMap(edu.iris.Fissures.IfSeismogramDC.RequestFilter[] filters)
- Sorts the request filters into Lists indexed by the list of datacenters
that support each networkId. So the keys of the map are Lists of
DataCenters, all of which support a given network. And the values of
the map is a List of RequestFilters that are for the given network.