|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.i2p.router.Router
public class Router
Main driver for the router. For embedded use, instantiate, call setKillVMOnEnd(false), and then call runRouter().
Field Summary | |
---|---|
static char |
CAPABILITY_BW_UNLIMITED
|
static char |
CAPABILITY_BW12
|
static char |
CAPABILITY_BW128
|
static char |
CAPABILITY_BW256
|
static char |
CAPABILITY_BW32
|
static char |
CAPABILITY_BW512
|
static char |
CAPABILITY_BW64
|
static char |
CAPABILITY_NEW_TUNNEL
Deprecated. unused |
static char |
CAPABILITY_REACHABLE
|
static char |
CAPABILITY_UNREACHABLE
|
static long |
CLOCK_FUDGE_FACTOR
let clocks be off by 1 minute |
static int |
COALESCE_TIME
coalesce stats this often - should be a little less than one minute, so the graphs get updated |
static int |
DEFAULT_SHARE_PERCENTAGE
|
static int |
EXIT_GRACEFUL
shut down after all tunnels are gone |
static int |
EXIT_GRACEFUL_RESTART
shut down after all tunnels are gone, and tell the wrapper to restart |
static int |
EXIT_HARD
shut down immediately |
static int |
EXIT_HARD_RESTART
shut down immediately, and tell the wrapper to restart |
static int |
EXIT_OOM
shut down immediately |
static int |
NETWORK_ID
used to differentiate routerInfo files on different networks |
static String |
PROP_BANDWIDTH_SHARE_PERCENTAGE
|
static String |
PROP_CONFIG_FILE
|
static String |
PROP_DYNAMIC_KEYS
|
static String |
PROP_FORCE_BWCLASS
for testing |
static String |
PROP_FORCE_UNREACHABLE
for testing |
static String |
PROP_HIDDEN
this puts an 'H' in your routerInfo |
static String |
PROP_HIDDEN_HIDDEN
this does not put an 'H' in your routerInfo |
Object |
routerInfoFileLock
not for external use |
static String |
UPDATE_FILE
|
Constructor Summary | |
---|---|
Router()
Instantiation only. |
|
Router(Properties envProps)
Instantiation only. |
|
Router(String configFilename)
Instantiation only. |
|
Router(String configFilename,
Properties envProps)
Instantiation only. |
Method Summary | |
---|---|
void |
addCapabilities(RouterInfo ri)
For building our RI. |
void |
cancelGracefulShutdown()
Cancel any prior request to shut the router down gracefully. |
static void |
clearCaches()
Not for external use. |
void |
clockShift(long delta)
The clock shift listener. |
EventLog |
eventLog()
|
int |
get15sRate()
Max of inbound and outbound rate in bytes per second |
int |
get15sRate(boolean outboundOnly)
When outboundOnly is false, outbound rate in bytes per second. |
int |
get15sRateIn()
Inbound rate in bytes per second |
int |
get1mRate()
Max of inbound and outbound rate in bytes per second |
int |
get1mRate(boolean outboundOnly)
When outboundOnly is false, outbound rate in bytes per second. |
int |
get1mRateIn()
Inbound rate in bytes per second |
int |
get1sRate()
Max of inbound and outbound rate in bytes per second |
int |
get1sRate(boolean outboundOnly)
When outboundOnly is false, outbound rate in bytes per second. |
int |
get1sRateIn()
Inbound rate in bytes per second |
int |
get5mRate()
Max of inbound and outbound rate in bytes per second |
int |
get5mRate(boolean outboundOnly)
When outboundOnly is false, outbound rate in bytes per second. |
String |
getConfigFilename()
|
Map<String,String> |
getConfigMap()
|
String |
getConfigSetting(String name)
|
Set<String> |
getConfigSettings()
|
RouterContext |
getContext()
Non-null, but take care when accessing context items before runRouter() is called as the context will not be initialized. |
boolean |
getKillVMOnEnd()
Deprecated. unused |
RouterInfo |
getRouterInfo()
Our current router info. |
double |
getSharePercentage()
What fraction of the bandwidth specified in our bandwidth limits should we allow to be consumed by participating tunnels? |
long |
getShutdownTimeRemaining()
How long until the graceful shutdown will kill us? |
long |
getUptime()
wall clock uptime |
long |
getWhenStarted()
Used only by routerconsole.. |
boolean |
gracefulShutdownInProgress()
Is a graceful shutdown in progress? This may be cancelled. |
boolean |
isAlive()
True during the initial start, but false during a soft restart. |
boolean |
isFinalShutdownInProgress()
Is a final shutdown in progress? This may not be cancelled. |
boolean |
isHidden()
|
void |
killKeys()
Not for external use. |
static void |
main(String[] args)
Usage: Router [rebuild] No other options allowed, for now Instantiates Router(), and either installs updates and exits, or calls runRouter(). |
void |
readConfig()
This updates the config with all settings found in the file. |
void |
rebuildNewIdentity()
Rebuild a new identity the hard way - delete all of our old identity files, then reboot the router. |
void |
rebuildRouterInfo()
Rebuild and republish our routerInfo since something significant has changed. |
void |
rebuildRouterInfo(boolean blockingRebuild)
Rebuild and republish our routerInfo since something significant has changed. |
void |
removeConfigSetting(String name)
Deprecated. use saveConfig(String name, String value) or saveConfig(Map toAdd, Set toRemove) |
void |
restart()
A "soft" restart, primarily of the comm system, after a port change or large step-change in system time. |
void |
runRouter()
This must be called after instantiation. |
boolean |
saveConfig()
Save the current config options (returning true if save was successful, false otherwise) Synchronized with file read in getConfig() |
boolean |
saveConfig(Map toAdd,
Collection<String> toRemove)
Updates the current config and then saves it. |
boolean |
saveConfig(String name,
String value)
Updates the current config with the given key/value and then saves it. |
int |
scheduledGracefulExitCode()
What exit code do we plan on using when we shut down (or -1, if there isn't a graceful shutdown planned) |
void |
setConfigFilename(String filename)
Deprecated. unused |
void |
setConfigSetting(String name,
String value)
Deprecated. use saveConfig(String name, String value) or saveConfig(Map toAdd, Set toRemove) |
void |
setExplTunnelsReady()
Only for Tunnel Building, after we have non-zero-hop expl. |
void |
setIsAlive()
Only for Restarter, after soft restart is complete. |
void |
setKillVMOnEnd(boolean shouldDie)
Configure the router to kill the JVM when the router shuts down, as well as whether to explicitly halt the JVM during the hard fail process. |
void |
setNetDbReady()
Only for NetDB, after RIs are loaded. |
void |
setRouterInfo(RouterInfo info)
Caller must ensure info is valid - no validation done here. |
void |
shutdown(int exitCode)
Shutdown with no chance of cancellation. |
void |
shutdown2(int exitCode)
Cancel the JVM runtime hook before calling this. |
void |
shutdownGracefully()
Non-blocking shutdown. |
void |
shutdownGracefully(int exitCode)
Non-blocking shutdown. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public final Object routerInfoFileLock
public static final String PROP_CONFIG_FILE
public static final long CLOCK_FUDGE_FACTOR
public static final int NETWORK_ID
public static final int COALESCE_TIME
public static final String PROP_HIDDEN
public static final String PROP_HIDDEN_HIDDEN
public static final String PROP_DYNAMIC_KEYS
public static final String UPDATE_FILE
public static final char CAPABILITY_BW12
public static final char CAPABILITY_BW32
public static final char CAPABILITY_BW64
public static final char CAPABILITY_BW128
public static final char CAPABILITY_BW256
public static final char CAPABILITY_BW512
public static final char CAPABILITY_BW_UNLIMITED
public static final String PROP_FORCE_BWCLASS
public static final char CAPABILITY_REACHABLE
public static final char CAPABILITY_UNREACHABLE
public static final String PROP_FORCE_UNREACHABLE
public static final char CAPABILITY_NEW_TUNNEL
public static final int EXIT_GRACEFUL
public static final int EXIT_HARD
public static final int EXIT_OOM
public static final int EXIT_HARD_RESTART
public static final int EXIT_GRACEFUL_RESTART
public static final String PROP_BANDWIDTH_SHARE_PERCENTAGE
public static final int DEFAULT_SHARE_PERCENTAGE
Constructor Detail |
---|
public Router()
IllegalStateException
- since 0.9.19 if another router with this config is runningpublic Router(Properties envProps)
envProps
- may be null
IllegalStateException
- since 0.9.19 if another router with this config is runningpublic Router(String configFilename)
configFilename
- may be null
IllegalStateException
- since 0.9.19 if another router with this config is runningpublic Router(String configFilename, Properties envProps)
configFilename
- may be nullenvProps
- may be null
IllegalStateException
- since 0.9.19 if another router with this config is runningMethod Detail |
---|
public static final void clearCaches()
public void setKillVMOnEnd(boolean shouldDie)
public boolean getKillVMOnEnd()
public String getConfigFilename()
public void setConfigFilename(String filename)
public String getConfigSetting(String name)
public void setConfigSetting(String name, String value)
public void removeConfigSetting(String name)
public Set<String> getConfigSettings()
public Map<String,String> getConfigMap()
public RouterInfo getRouterInfo()
public void setRouterInfo(RouterInfo info)
public long getWhenStarted()
public long getUptime()
public RouterContext getContext()
public void runRouter()
IllegalStateException
- if called more than oncepublic void readConfig()
public boolean isAlive()
public void setIsAlive()
public void setNetDbReady()
public void setExplTunnelsReady()
public boolean gracefulShutdownInProgress()
public boolean isFinalShutdownInProgress()
public void rebuildRouterInfo()
public void rebuildRouterInfo(boolean blockingRebuild)
public void addCapabilities(RouterInfo ri)
ri
- an unpublished ri we are generating.public boolean isHidden()
public EventLog eventLog()
public void killKeys()
public void rebuildNewIdentity()
public void shutdown(int exitCode)
exitCode
- one of the EXIT_* values, non-negative
IllegalArgumentException
- if exitCode negativepublic void shutdown2(int exitCode)
exitCode
- one of the EXIT_* values, non-negative
IllegalArgumentException
- if exitCode negativepublic void shutdownGracefully()
shutdown(int)
. If you want to cancel
the graceful shutdown (prior to actual shutdown ;), call
cancelGracefulShutdown()
.
Exit code will be EXIT_GRACEFUL.
Shutdown delay will be from zero to 11 minutes.
public void shutdownGracefully(int exitCode)
exitCode
- one of the EXIT_* values, non-negative
IllegalArgumentException
- if exitCode negativepublic void cancelGracefulShutdown()
public int scheduledGracefulExitCode()
public long getShutdownTimeRemaining()
public boolean saveConfig()
public boolean saveConfig(String name, String value)
name
- setting to add/change/remove before savingvalue
- if non-null, updated value; if null, setting will be removed
public boolean saveConfig(Map toAdd, Collection<String> toRemove)
toAdd
- settings to add/change before saving, may be null or emptytoRemove
- settings to remove before saving, may be null or empty
public void clockShift(long delta)
clockShift
in interface RouterClock.ClockShiftListener
delta
- The system clock and adjusted clock just changed by this much,
in milliseconds (approximately)public void restart()
public static void main(String[] args)
args
- null ok
IllegalArgumentException
public double getSharePercentage()
public int get1sRate()
public int get1sRate(boolean outboundOnly)
public int get1sRateIn()
public int get15sRate()
public int get15sRate(boolean outboundOnly)
public int get15sRateIn()
public int get1mRate()
public int get1mRate(boolean outboundOnly)
public int get1mRateIn()
public int get5mRate()
public int get5mRate(boolean outboundOnly)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |