/**
* Dianping.com Inc.
* Copyright (c) 2003-2013 All Rights Reserved.
*/
package com.dianping.pigeon.domain;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
/**
*
*
*/
public class HostInfo {
private String connect;
private String host;
private int port;
private int weight;
private String app;
private String version;
private byte heartBeatSupport;
// serviceName --> support new protocol
private Map<String, Boolean> serviceProtocols;
// all referenced serviceName
private Set<String> services = new HashSet<>();
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getApp() {
return app;
}
public void setApp(String app) {
this.app = app;
}
public HostInfo(String host, int port, int weight) {
this.host = host;
this.port = port;
this.connect = host + ":" + port;
this.weight = weight;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof HostInfo) {
HostInfo hp = (HostInfo) obj;
return this.host.equals(hp.host) && this.port == hp.port;
}
return false;
}
@Override
public int hashCode() {
return host.hashCode() + port;
}
@Override
public String toString() {
return "HostInfo [host=" + host + ", port=" + port + ", weight=" + weight + ", app=" + app + "]";
}
public String getConnect() {
return connect;
}
public String getHost() {
return host;
}
public int getPort() {
return port;
}
public int getWeight() {
return weight;
}
public void setWeight(int weight) {
this.weight = weight;
}
public byte getHeartBeatSupport() {
return heartBeatSupport;
}
public void setHeartBeatSupport(byte heartBeatSupport) {
this.heartBeatSupport = heartBeatSupport;
}
public Map<String, Boolean> getServiceProtocols() {
return serviceProtocols;
}
public void setServiceProtocols(Map<String, Boolean> serviceProtocols) {
this.serviceProtocols = serviceProtocols;
}
public void addService(String serviceName) {
services.add(serviceName);
}
public void removeService(String serviceName) {
services.remove(serviceName);
}
public Set<String> getServices() {
return services;
}
}