📄 node.java
字号:
public long getTotalWindow() { return m_totalWindow; } /** * Return the interfaces * * @return A list of interfaces. */ public ArrayList getInterfaces() { return m_interfaces; } /** * Return the nodeid * * @return This node's id. */ public int getNodeID() { return m_nodeid; } /** * Returns the service affected count. * * @return The number of affected services. */ public int getServiceAffectCount() { int count = 0; ListIterator lstIter = m_interfaces.listIterator(); while (lstIter.hasNext()) { Interface intf = (Interface) lstIter.next(); if (intf != null) { count += intf.getServiceAffectCount(); } } return count; } /** * Add Interface with interface name. * * @param intfname * interface name Checks if the interface with name intfname * exists. If not, adds a new interface with name intfname. */ public void addInterface(String intfname) { if (intfname == null) return; int ndx = m_interfaces.indexOf(InterfaceComparator.make(intfname)); if (ndx == -1) { Interface intf = new Interface(intfname); m_interfaces.add(intf); } } /** * Add an Interface with interface and service name. * * @param intfname * interface name * @param service * service name Checks if the interface with name intfname * exists. If so, adds service to that interface. Otherwise, adds * a new interface with name intfname and service. */ public void addInterface(String intfname, String service) { if (intfname == null) return; int ndx = m_interfaces.indexOf(InterfaceComparator.make(intfname)); if (ndx != -1) { Interface intf = (Interface) m_interfaces.get(ndx); if (service != null) intf.addService(service); return; } Interface intf = new Interface(intfname); if (service != null) intf.addService(service); m_interfaces.add(intf); } /** * Add Interface with interface name, service id, lost time. * * @param intfname * Interface name * @param service * Service name * @param lost * Lost time Checks if the interface with name intfname exists. * If so, adds service to that interface. Otherwise, adds a new * interface with name intfname and service, and adds an outage * with losttime as lost. */ public void addInterface(String intfname, String service, long lost) { int ndx = m_interfaces.indexOf(InterfaceComparator.make(intfname)); if (ndx != -1) { Interface intf = (Interface) m_interfaces.get(ndx); if (service != null) { intf.addService(service, lost); m_hasOutage = true; } return; } Interface intf = new Interface(intfname); if (service != null) { intf.addService(service, lost); m_hasOutage = true; } m_interfaces.add(intf); } /** * Searches the list of interfaces and returns the interface object with * name intfname. * * @return Interface with name intfname */ public Interface getInterface(String intfname) { if (intfname == null) return null; int ndx = m_interfaces.indexOf(InterfaceComparator.make(intfname)); if (ndx != -1) { Interface intf = (Interface) m_interfaces.get(ndx); return intf; } return null; } /** * Adds Interface with interface name, service id, lost time, regained time. * * @param intfname * Interface name * @param service * Service name * @param lost * Lost time * @param regained * Regained time. Checks if the interface with name intfname * exists. If so, adds service to that interface. Otherwise, adds * a new interface with name intfname and service, and adds an * outage with losttime as lost and regained time as regained. */ public void addInterface(String intfname, String service, long lost, long regained) { if (intfname == null) return; int ndx = m_interfaces.indexOf(InterfaceComparator.make(intfname)); if (ndx != -1) { Interface intf = (Interface) m_interfaces.get(ndx); intf.addService(service, lost, regained); m_hasOutage = true; return; } Interface intf = new Interface(intfname); if (service != null) { intf.addService(service, lost, regained); m_hasOutage = true; } m_interfaces.add(intf); } /** * Computes the availability of the node. The rolling window (in * milliseconds) * * @param endTime * End Time of the rolling window in milliseconds. * @return percentage availability of node for the last week. */ public double getPercentAvail(long endTime, long rollingWindow) { double percent = 0; long outage = 0; int serviceCount = 0; if (m_interfaces != null && m_interfaces.size() > 0) { ListIterator lstIter = m_interfaces.listIterator(); while (lstIter.hasNext()) { Interface intf = (Interface) lstIter.next(); if (intf != null) { long down = intf.getDownTime(endTime, rollingWindow); if (down > 0) outage += down; serviceCount += intf.getServiceCount(); } } } if (serviceCount > 0) { m_downTime = outage; m_totalWindow = rollingWindow * serviceCount; m_serviceCount = serviceCount; double denom = rollingWindow * serviceCount * 1.0d; double num = 1.0d * outage; percent = 100.0 * (1.0 - (num / denom)); } else percent = 100.0; m_percentAvail = percent; return percent; } /** * Get the outage for this node. * * @return The outage time. */ public long getOutage(long endTime, long rollingWindow) { double percent = 0; long outage = 0; int serviceCount = 0; if (m_interfaces != null && m_interfaces.size() > 0) { ListIterator lstIter = m_interfaces.listIterator(); while (lstIter.hasNext()) { Interface intf = (Interface) lstIter.next(); if (intf != null) { long down = intf.getDownTime(endTime, rollingWindow); if (down > 0) outage += down; serviceCount += intf.getServiceCount(); } } } if (serviceCount > 0) { m_serviceCount = serviceCount; } return outage; } /** * Returns the string that displays the Node/Interface/Service/Outages * combinations. * * @return The string representation. */ public String toString() { StringBuffer retVal = new StringBuffer(); String nl = System.getProperty("line.separator"); retVal.append(nl).append(nl).append("Nodeid : ").append(getName()).append(nl).append("Interfaces"); ListIterator lstInterfaces = (ListIterator) m_interfaces.listIterator(); while (lstInterfaces.hasNext()) { Interface intf = (Interface) lstInterfaces.next(); if (intf != null) { retVal.append(nl).append("\t\t").append(intf.getName()); List services = intf.getServices(); ListIterator lstServices = (ListIterator) services.listIterator(); while (lstServices.hasNext()) { Service service = (Service) lstServices.next(); retVal.append(nl).append("\t\t\t\t").append(service.getName()); if (service != null) { retVal.append(nl).append("\t\t\t\t\t").append(service.getOutages()); } } } } return retVal.toString(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -