All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.taobao.metamorphosis.server.utils.SlaveConfig Maven / Gradle / Ivy

There is a newer version: 1.4.6.2
Show newest version
package com.taobao.metamorphosis.server.utils;

import java.io.Serializable;

import com.taobao.metamorphosis.utils.Config;


/**
 * Async slave config
 * 
 * @author apple
 * 
 */
public class SlaveConfig extends Config implements Serializable {
    private static final long serialVersionUID = 1L;

    // slave???,???ڵ???0??ʾ??Ϊslave????
    private int slaveId = -1;
    // ??Ϊslave????ʱ??master??????Ϣ??group,???û??????Ĭ??Ϊmeta-slave-group
    private String slaveGroup = "meta-slave-group";
    // slave????ͬ?????????ʱ,??λ????
    private long slaveMaxDelayInMills = 500;
    // ?Ƿ??Զ???masterͬ??server.ini
    // ??һ????Ȼ??Ҫ?Լ?????server.ini??????????ͨ?????ô?ѡ??Ϊtrue???Զ?ͬ??
    private boolean autoSyncMasterConfig;


    public SlaveConfig(int slaveId) {
        super();
        this.slaveId = slaveId;
    }


    public SlaveConfig(int slaveId, String slaveGroup, long slaveMaxDelayInMills, boolean syncMasterConfig) {
        super();
        this.slaveId = slaveId;
        this.slaveGroup = slaveGroup;
        this.slaveMaxDelayInMills = slaveMaxDelayInMills;
        this.autoSyncMasterConfig = syncMasterConfig;
    }


    public SlaveConfig() {
        super();
    }


    public int getSlaveId() {
        return this.slaveId;
    }


    public void setSlaveId(int slaveId) {
        this.slaveId = slaveId;
    }


    public String getSlaveGroup() {
        return this.slaveGroup;
    }


    public void setSlaveGroup(String slaveGroup) {
        this.slaveGroup = slaveGroup;
    }


    public long getSlaveMaxDelayInMills() {
        return this.slaveMaxDelayInMills;
    }


    public void setSlaveMaxDelayInMills(long slaveMaxDelayInMills) {
        this.slaveMaxDelayInMills = slaveMaxDelayInMills;
    }


    public boolean isAutoSyncMasterConfig() {
        return this.autoSyncMasterConfig;
    }


    public void setAutoSyncMasterConfig(boolean syncMasterConfig) {
        this.autoSyncMasterConfig = syncMasterConfig;
    }


    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + (this.slaveGroup == null ? 0 : this.slaveGroup.hashCode());
        result = prime * result + this.slaveId;
        result = prime * result + (int) (this.slaveMaxDelayInMills ^ this.slaveMaxDelayInMills >>> 32);
        result = prime * result + (this.autoSyncMasterConfig ? 1231 : 1237);
        return result;
    }


    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (this.getClass() != obj.getClass()) {
            return false;
        }
        SlaveConfig other = (SlaveConfig) obj;
        if (this.slaveGroup == null) {
            if (other.slaveGroup != null) {
                return false;
            }
        }
        else if (!this.slaveGroup.equals(other.slaveGroup)) {
            return false;
        }
        if (this.slaveId != other.slaveId) {
            return false;
        }
        if (this.slaveMaxDelayInMills != other.slaveMaxDelayInMills) {
            return false;
        }
        if (this.autoSyncMasterConfig != other.autoSyncMasterConfig) {
            return false;
        }
        return true;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy