public final class BirthRoom
extends java.lang.Thread
Modifier and Type | Class and Description |
---|---|
private class |
BirthRoom.OtherMidwife
this midwife's network interface.
|
Modifier and Type | Field and Description |
---|---|
private int |
agentCount |
(package private) static java.lang.String |
AGENTDIR |
private java.lang.String |
agentsName |
private int |
backlog |
private int |
commsPort |
private int |
commsPortBase |
(package private) static long |
FIXED_SEED |
private java.lang.Boolean |
freezeXpansion |
private java.lang.String |
ipa |
private java.util.ArrayList<java.lang.String> |
ipaSubnet |
private java.lang.String |
localPath |
private java.util.ArrayList<BirthRoom.OtherMidwife> |
others |
(package private) static long |
RANDOM_SEED |
static java.util.Random |
rng |
(package private) static long |
RNG_SEED |
private java.net.InetAddress |
selfIPAInetAddr |
static Server |
server |
private java.io.File |
startupFolder |
(package private) static boolean |
USE_FIXED |
Constructor and Description |
---|
BirthRoom(int newPortBase,
int newBacklog,
java.lang.String myIPA,
java.util.ArrayList<java.lang.String> clusterSubnet)
this is the constructor.
|
Modifier and Type | Method and Description |
---|---|
java.util.ArrayList<java.lang.String> |
addToQueue(java.util.ArrayList<java.lang.String> aList,
java.lang.String sParam)
this returns a buffered ArrayList that has an added element.
|
java.util.ArrayList<java.lang.String> |
clone(java.util.ArrayList<java.lang.String> list)
this takes a String ArrayList, makes a copy, and returns the copy.
|
void |
countTheAgents(java.lang.String osTskMgr)
this builds a list of all current OS processes, scans the list for
instances of a particular process named by the variable agentsName,
counts the instances of that process, and stores that number for
accessor pickup.
|
int |
getAgentCount()
this returns the number of agents active on this host CPU.
|
java.util.ArrayList<java.lang.Integer> |
getClusterLoading(java.util.ArrayList<java.lang.String> subnet)
this returns an ArrayList containing the counts of agents currently
active on each respective host CPU in the cluster.
|
int |
getIPAOffset(java.lang.String ipaString)
this returns the offset address in the cluster of the parameter
ipaString.
|
private java.util.ArrayList<java.lang.String> |
getProcessList(java.lang.String osTskMgr)
this asks the OS for a list of the running processes and returns it
as an ArrayList of type String.
|
java.lang.String |
ipaSimplifier(java.lang.String fullFormat)
this helper method returns a simplified String version of the a 32-bit
IPA.
|
java.util.ArrayList<BirthRoom.OtherMidwife> |
proxyAuction(java.util.ArrayList<BirthRoom.OtherMidwife> bidders)
this is an absentee auction process undertaken by the current Midwife
where all eligible bidders for the responsibility to "birth" a new
Agency, including the current Midwife, participate by proxy.
|
java.util.ArrayList<BirthRoom.OtherMidwife> |
prxyActnTieBrkr(java.util.ArrayList<BirthRoom.OtherMidwife> bidders)
this will help proxyAuction break a tie for least loaded status.
|
void |
reportOthersListContents()
this reports to the console this Midwife's OthersList contents.
|
void |
run()
this is the BirthRoom's central thread.
|
void |
setAgentCount(int newCount)
this synchronized setter sets count of agents active on this host CPU.
|
void |
setFreezeXpansion(boolean userChoice)
this sets the value of the user choice to continue expanding Agent
load.
|
void |
setIPASubnet(java.util.ArrayList<java.lang.String> newList)
this synchronized setter sets the list of known CPUs in the cluster.
|
void |
setNetListenName(java.lang.String newName)
this sets the name of the Agents.
|
java.util.ArrayList<java.lang.String> |
shortenTheQueue(java.util.ArrayList<java.lang.String> aList)
this returns a shortened ArrayList.
|
private void |
startLocalAgent(java.lang.String startupParticulars)
this method starts an agent object executable locally.
|
void |
template()
this method does nothing.
|
void |
updateTheOthersList()
this builds a structure containing a local image of the state (IPAs and
momentary agent counts) of the other midwives in the CPU cluster.
|
private void |
wait(int milliseconds)
this causes a wait in milliseconds using system resources.
|
activeCount, checkAccess, clone, 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
static final boolean USE_FIXED
static final long FIXED_SEED
static final long RANDOM_SEED
static final long RNG_SEED
static final java.lang.String AGENTDIR
private java.lang.String agentsName
private java.net.InetAddress selfIPAInetAddr
private java.lang.String ipa
private int commsPortBase
private int commsPort
private int backlog
private int agentCount
private java.lang.String localPath
private java.io.File startupFolder
private java.lang.Boolean freezeXpansion
private java.util.ArrayList<java.lang.String> ipaSubnet
private java.util.ArrayList<BirthRoom.OtherMidwife> others
public static java.util.Random rng
public static Server server
public BirthRoom(int newPortBase, int newBacklog, java.lang.String myIPA, java.util.ArrayList<java.lang.String> clusterSubnet)
public java.util.ArrayList<java.lang.String> addToQueue(java.util.ArrayList<java.lang.String> aList, java.lang.String sParam)
public java.util.ArrayList<java.lang.String> clone(java.util.ArrayList<java.lang.String> list)
public void countTheAgents(java.lang.String osTskMgr)
public int getAgentCount()
public java.util.ArrayList<java.lang.Integer> getClusterLoading(java.util.ArrayList<java.lang.String> subnet)
public int getIPAOffset(java.lang.String ipaString)
private java.util.ArrayList<java.lang.String> getProcessList(java.lang.String osTskMgr)
public java.lang.String ipaSimplifier(java.lang.String fullFormat)
public java.util.ArrayList<BirthRoom.OtherMidwife> proxyAuction(java.util.ArrayList<BirthRoom.OtherMidwife> bidders)
public java.util.ArrayList<BirthRoom.OtherMidwife> prxyActnTieBrkr(java.util.ArrayList<BirthRoom.OtherMidwife> bidders)
public void reportOthersListContents()
public void run()
run
in interface java.lang.Runnable
run
in class java.lang.Thread
public void setAgentCount(int newCount)
public void setFreezeXpansion(boolean userChoice)
public void setIPASubnet(java.util.ArrayList<java.lang.String> newList)
public void setNetListenName(java.lang.String newName)
public java.util.ArrayList<java.lang.String> shortenTheQueue(java.util.ArrayList<java.lang.String> aList)
private void startLocalAgent(java.lang.String startupParticulars)
public void updateTheOthersList()
private void wait(int milliseconds)
public void template()