public class PeerProfile extends Object
Modifier and Type | Field and Description |
---|---|
(package private) static boolean |
ENABLE_TUNNEL_TEST_RESPONSE_TIME |
Constructor and Description |
---|
PeerProfile(RouterContext context,
Hash peer)
Caller should call setLastHeardAbout() and setFirstHeardAbout()
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
coalesceOnly(boolean shouldDecay)
Caller must next call updateValues()
|
(package private) void |
coalesceStats()
Update the stats and rates.
|
(package private) void |
dataPushed(int size) |
(package private) void |
dataPushed1m(int size)
the tunnel pushed that much data in a 1 minute period
|
boolean |
equals(Object obj) |
void |
expandDBProfile()
For floodfills
|
void |
expandProfile()
When the given peer is performing well enough that we want to keep detailed
stats on them again, call this to set up the info we dropped during shrinkProfile.
|
int |
getCapacityBonus()
extra factor added to the capacity ranking - this can be updated in the profile
written to disk to affect how the algorithm ranks capacity.
|
float |
getCapacityValue()
How many tunnels do we think this peer can handle over the next hour?
|
(package private) RouterContext |
getContext()
Helper for calculators
|
DBHistory |
getDBHistory()
history of db activity with the peer
Warning - may return null if !getIsExpandedDB()
|
RateStat |
getDbIntroduction()
how many new peers we get from dbSearchReplyMessages or dbStore messages, calculated over a 1 hour, 1 day, and 1 week period
Warning - may return null if !getIsExpandedDB()
|
RateStat |
getDbResponseTime()
how long it takes to get a db response from the peer (in milliseconds), calculated over a 1 minute, 1 hour, and 1 day period
Warning - may return null if !getIsExpandedDB()
|
long |
getFirstHeardAbout()
When did we first hear about this peer?
|
int |
getIntegrationBonus()
extra factor added to the integration ranking - this can be updated in the profile
written to disk to affect how the algorithm ranks integration.
|
float |
getIntegrationValue()
How well integrated into the network is this peer (as measured by how much they've
told us that we didn't already know).
|
boolean |
getIsActive()
Is this peer active at the moment (sending/receiving messages within the last
5 minutes)
|
boolean |
getIsActive(long now)
Is this peer active at the moment (sending/receiving messages within the last
5 minutes)
|
boolean |
getIsActive(long period,
long now)
Is this peer active at the moment (sending/receiving messages within the
given period?)
Also mark active if it is connected, as this will tend to encourage use
of already-connected peers.
|
boolean |
getIsExpanded()
are we keeping an expanded profile on the peer, or just the bare minimum.
|
boolean |
getIsExpandedDB() |
boolean |
getIsFailing()
Deprecated.
- unused - always false
|
long |
getLastHeardAbout()
when did we last hear about this peer?
|
long |
getLastHeardFrom()
when did we last hear from the peer?
|
long |
getLastSendFailed()
when did we last have a problem sending to this peer?
|
long |
getLastSendSuccessful()
when did we last send to this peer successfully?
|
float |
getPeakThroughputKBps() |
float |
getPeakTunnel1mThroughputKBps()
This is the speed value
|
float |
getPeakTunnelThroughputKBps() |
Hash |
getPeer()
what peer is being profiled, non-null
|
int |
getSpeedBonus()
extra factor added to the speed ranking - this can be updated in the profile
written to disk to affect how the algorithm ranks speed.
|
float |
getSpeedValue()
How fast is the peer, taking into consideration both throughput and latency.
|
RateStat |
getTunnelCreateResponseTime()
how long it takes to get a tunnel create response from the peer (in milliseconds), calculated over a 1 minute, 1 hour, and 1 day period
Warning - may return null if !getIsExpanded()
|
TunnelHistory |
getTunnelHistory()
history of tunnel activity with the peer
Warning - may return null if !getIsExpanded()
|
RateStat |
getTunnelTestResponseTime()
Deprecated.
unused
|
float |
getTunnelTestTimeAverage()
Deprecated.
unused
|
(package private) int |
getXORDistance()
For now, just a one-byte comparison
|
int |
hashCode() |
(package private) boolean |
isEstablished() |
(package private) boolean |
isSameCountry() |
void |
setCapacityBonus(int bonus) |
void |
setDBHistory(DBHistory hist) |
(package private) void |
setFirstHeardAbout(long when)
Set when did we first heard about this peer, only if older.
|
void |
setIntegrationBonus(int bonus) |
(package private) void |
setIsFailing(boolean val)
Deprecated.
- unused - always false
|
void |
setLastHeardAbout(long when)
Set when did we last hear about this peer, only if unset or newer
Also sets FirstHeardAbout if earlier
|
void |
setLastHeardFrom(long when) |
void |
setLastSendFailed(long when) |
void |
setLastSendSuccessful(long when) |
(package private) void |
setPeakThroughputKBps(float kBps)
Only for restoration from persisted profile.
|
(package private) void |
setPeakTunnel1mThroughputKBps(float kBps)
Only for restoration from persisted profile.
|
(package private) void |
setPeakTunnelThroughputKBps(float kBps)
Only for restoration from persisted profile.
|
void |
setSpeedBonus(int bonus) |
void |
setTunnelHistory(TunnelHistory history) |
(package private) void |
setTunnelTestTimeAverage(float avg)
Deprecated.
unused
|
String |
toString() |
(package private) void |
tunnelDataTransferred(long tunnelByteLifetime)
the tunnel pushed that much data in its lifetime
|
(package private) void |
updateTunnelTestTimeAverage(long ms)
Deprecated.
unused
|
(package private) void |
updateValues()
Copy over the new values generated by coalesceOnly()
|
(package private) boolean |
wasUnreachable() |
static final boolean ENABLE_TUNNEL_TEST_RESPONSE_TIME
public PeerProfile(RouterContext context, Hash peer)
peer
- non-nullpublic Hash getPeer()
public boolean getIsExpanded()
public boolean getIsExpandedDB()
public boolean getIsActive()
public boolean getIsActive(long now)
boolean isEstablished()
boolean wasUnreachable()
boolean isSameCountry()
int getXORDistance()
public boolean getIsActive(long period, long now)
period
- must be one of the periods in the RateStat constructors below
(5*60*1000 or 60*60*1000)public long getFirstHeardAbout()
void setFirstHeardAbout(long when)
public long getLastHeardAbout()
public void setLastHeardAbout(long when)
public long getLastSendSuccessful()
public void setLastSendSuccessful(long when)
public long getLastSendFailed()
public void setLastSendFailed(long when)
public long getLastHeardFrom()
public void setLastHeardFrom(long when)
public TunnelHistory getTunnelHistory()
public void setTunnelHistory(TunnelHistory history)
public DBHistory getDBHistory()
public void setDBHistory(DBHistory hist)
public RateStat getDbResponseTime()
public RateStat getTunnelCreateResponseTime()
@Deprecated public RateStat getTunnelTestResponseTime()
public RateStat getDbIntroduction()
public int getSpeedBonus()
public void setSpeedBonus(int bonus)
public int getCapacityBonus()
public void setCapacityBonus(int bonus)
public int getIntegrationBonus()
public void setIntegrationBonus(int bonus)
public float getSpeedValue()
public float getCapacityValue()
public float getIntegrationValue()
@Deprecated public boolean getIsFailing()
@Deprecated public float getTunnelTestTimeAverage()
@Deprecated void setTunnelTestTimeAverage(float avg)
@Deprecated void updateTunnelTestTimeAverage(long ms)
public float getPeakThroughputKBps()
void setPeakThroughputKBps(float kBps)
void dataPushed(int size)
void tunnelDataTransferred(long tunnelByteLifetime)
public float getPeakTunnelThroughputKBps()
void setPeakTunnelThroughputKBps(float kBps)
void dataPushed1m(int size)
public float getPeakTunnel1mThroughputKBps()
void setPeakTunnel1mThroughputKBps(float kBps)
public void expandProfile()
public void expandDBProfile()
void coalesceStats()
void coalesceOnly(boolean shouldDecay)
void updateValues()
@Deprecated void setIsFailing(boolean val)
RouterContext getContext()