package org.dcache.admin.webadmin.datacollector.datatypes; import java.util.Objects; import dmg.cells.nucleus.CellAddressCore; import dmg.cells.nucleus.CellInfo; import dmg.cells.nucleus.CellPath; /** * Ping returning Long.MAX_VALUE means unknown/never reached * @author jans */ public class CellStatus { private String _createdDateTime = "unknown"; private String _version = ""; private long _ping = Long.MAX_VALUE; private long _lastAliveTime = System.currentTimeMillis(); private CellInfo _cellInfo = new CellInfo(); public CellStatus(CellAddressCore address) { _cellInfo.setCellName(address.getCellName()); _cellInfo.setDomainName(address.getCellDomainName()); } public void setPingUnreached() { _ping = Long.MAX_VALUE; } public void updateLastAliveTime() { _lastAliveTime = System.currentTimeMillis(); } public String getCreatedDateTime() { return _createdDateTime; } public void setCreatedDateTime(String createdDateTime) { _createdDateTime = createdDateTime; } public String getDomainName() { return _cellInfo.getDomainName(); } public void setDomainName(String domainName) { _cellInfo.setDomainName(domainName); } public int getEventQueueSize() { return _cellInfo.getEventQueueSize(); } public void setEventQueueSize(int eventQueueSize) { _cellInfo.setEventQueueSize(eventQueueSize); } public String getCellName() { return _cellInfo.getCellName(); } public long getPing() { return _ping; } public void setPing(long ping) { _ping = ping; } public int getThreadCount() { return _cellInfo.getThreadCount(); } public void setThreadCount(int threadCount) { _cellInfo.setThreadCount(threadCount); } public String getVersion() { return _version; } public void setVersion(String version) { _version = version; } public void setCellInfo(CellInfo cellInfo) { _cellInfo = cellInfo; _createdDateTime = _cellInfo.getCreationTime().toString(); _version = Objects.toString(_cellInfo.getCellVersion(), ""); } public long getLastAliveTime() { return _lastAliveTime; } public void setLastAliveTime(long lastAliveTime) { _lastAliveTime = lastAliveTime; } public CellAddressCore getCellAddress() { return new CellAddressCore(_cellInfo.getCellName(), _cellInfo.getDomainName()); } public CellPath getCellPath() { return new CellPath(_cellInfo.getCellName(), _cellInfo.getDomainName()); } }