This commit is contained in:
Administrator
2025-04-24 10:16:38 +08:00
parent 6de65562be
commit 7267aec1fd
108 changed files with 7621 additions and 1890 deletions
+19 -7
View File
@@ -30,12 +30,20 @@ public class RouterInfo implements Serializable{
*/
private static final long serialVersionUID = 1L;
private Inet6AddressGroup locator;
private long asn;
public Inet6AddressGroup getLocator() {
return locator;
}
public void setLocator(Inet6AddressGroup locator) {
this.locator = locator;
}
public long getAsn() {
return asn;
}
public void setAsn(long asn) {
this.asn = asn;
}
@Override
public int hashCode() {
return Objects.hash(locator, neighborAddresses);
@@ -51,7 +59,7 @@ public class RouterInfo implements Serializable{
RouterInfo other = (RouterInfo) obj;
return Objects.equals(locator, other.locator) && Objects.equals(neighborAddresses, other.neighborAddresses);
}
private Set<NeighborInfo> neighborAddresses=new HashSet<>();
private List<NeighborInfo> neighborAddresses=new ArrayList<>();
private long createTime;
@@ -59,7 +67,7 @@ public class RouterInfo implements Serializable{
return createTime;
}
private static final long INFO_UPDATETIME=10000000000L;
private static final long INFO_TIMEOUT=20000000000L;
private static final long INFO_TIMEOUT=120000000000L;
private long putTime=System.nanoTime();
public boolean checkUpdateTime() {
return System.nanoTime()-putTime>INFO_UPDATETIME;
@@ -74,21 +82,24 @@ public class RouterInfo implements Serializable{
return "RINFO [locator=" + locator + ", neighborAddresses=" + neighborAddresses + ", putTime=" + putTime
+ "]";
}
public Set<NeighborInfo> getNeighborAddresses() {
public List<NeighborInfo> getNeighborAddresses() {
return neighborAddresses;
}
public RouterInfo( long createTime) {
public RouterInfo( long createTime,Inet6AddressGroup locator,long asn) {
this.createTime = createTime;
this.locator=locator;
this.asn=asn;
}
public RouterInfo() {
}
public void writeToStream(DataOutputStream out) throws IOException {
locator.writeToStream(out);
out.writeLong(asn);
out.writeLong(createTime);
out.writeInt(neighborAddresses.size());
for (Iterator iterator = neighborAddresses.iterator(); iterator.hasNext();) {
NeighborInfo neighborInfo = (NeighborInfo) iterator.next();
for( NeighborInfo neighborInfo :neighborAddresses) {
neighborInfo.writeToStream(out);
}
}
@@ -101,9 +112,10 @@ public class RouterInfo implements Serializable{
}
public void readFromStream(DataInputStream in) throws IOException {
locator=new Inet6AddressGroup(in);
asn=in.readLong();
createTime=in.readLong();
int size=in.readInt();
neighborAddresses=new HashSet<>(size);
neighborAddresses=new ArrayList<>(size);
for (int i = 0; i < size; i++) {
NeighborInfo nif=new NeighborInfo();
nif.readFromStream(in);