blob: 01d56ecce2b1b1d53296b0146402dd1d8bd8be1c [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license
* agreements. See the NOTICE file distributed with this work for additional information regarding
* copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the License. You may obtain a
* copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.apache.geode.distributed.internal.membership.adapter;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import java.net.InetAddress;
import org.apache.geode.distributed.DurableClientAttributes;
import org.apache.geode.distributed.internal.membership.NetMember;
import org.apache.geode.distributed.internal.membership.gms.GMSMember;
import org.apache.geode.internal.serialization.Version;
/**
* GMSMemberAdapter implements the NetMember interface required by InternalDistributedMember
* to supply it with membership details. GMSMemberAdapter delegates to a GMSMember, which
* is the identifier class for group membership services.
*/
public class GMSMemberAdapter implements NetMember {
private GMSMember gmsMember;
private DurableClientAttributes durableClientAttributes;
public GMSMemberAdapter(GMSMember gmsMember) {
this.gmsMember = gmsMember;
String durableId = gmsMember.getDurableId();
if (durableId != null) {
this.durableClientAttributes =
new DurableClientAttributes(durableId, gmsMember.getDurableTimeout());
}
}
public GMSMember getGmsMember() {
return gmsMember;
}
@Override
public InetAddress getInetAddress() {
return gmsMember.getInetAddress();
}
@Override
public int getPort() {
return gmsMember.getPort();
}
@Override
public void setPort(int p) {
gmsMember.setPort(p);
}
@Override
public short getVersionOrdinal() {
return gmsMember.getVersionOrdinal();
}
@Override
public boolean isNetworkPartitionDetectionEnabled() {
return gmsMember.isNetworkPartitionDetectionEnabled();
}
@Override
public void setNetworkPartitionDetectionEnabled(boolean enabled) {
gmsMember.setNetworkPartitionDetectionEnabled(enabled);
}
@Override
public boolean preferredForCoordinator() {
return gmsMember.preferredForCoordinator();
}
@Override
public void setPreferredForCoordinator(boolean preferred) {
gmsMember.setPreferredForCoordinator(preferred);
}
@Override
public byte getMemberWeight() {
return gmsMember.getMemberWeight();
}
@Override
public void setVersion(Version v) {
gmsMember.setVersion(v);
}
@Override
public int getProcessId() {
return gmsMember.getProcessId();
}
@Override
public void setProcessId(int id) {
gmsMember.setProcessId(id);
}
@Override
public byte getVmKind() {
return gmsMember.getVmKind();
}
@Override
public void setVmKind(int kind) {
gmsMember.setVmKind(kind);
}
@Override
public int getVmViewId() {
return gmsMember.getVmViewId();
}
@Override
public void setVmViewId(int id) {
gmsMember.setVmViewId(id);
}
@Override
public int getDirectPort() {
return gmsMember.getDirectPort();
}
@Override
public void setDirectPort(int port) {
gmsMember.setDirectPort(port);
}
@Override
public String getName() {
return gmsMember.getName();
}
@Override
public void setName(String name) {
gmsMember.setName(name);
}
@Override
public DurableClientAttributes getDurableClientAttributes() {
return this.durableClientAttributes;
}
@Override
public void setDurableTimeout(int newValue) {
if (durableClientAttributes != null) {
durableClientAttributes.updateTimeout(newValue);
gmsMember.setDurableTimeout(newValue);
}
}
@Override
public void setHostName(String hostName) {
gmsMember.setHostName(hostName);
}
@Override
public String getHostName() {
return gmsMember.getHostName();
}
@Override
public boolean isPartial() {
return gmsMember.isPartial();
}
@Override
public void setDurableClientAttributes(DurableClientAttributes attributes) {
durableClientAttributes = attributes;
if (attributes != null) {
gmsMember.setDurableId(attributes.getId());
gmsMember.setDurableTimeout(attributes.getTimeout());
}
}
@Override
public String[] getGroups() {
return gmsMember.getGroups();
}
@Override
public void setGroups(String[] groups) {
gmsMember.setGroups(groups);
}
@Override
public boolean hasAdditionalData() {
return gmsMember.hasAdditionalData();
}
@Override
public void writeAdditionalData(DataOutput out) throws IOException {
gmsMember.writeAdditionalData(out);
}
@Override
public void readAdditionalData(DataInput in) throws ClassNotFoundException, IOException {
gmsMember.readAdditionalData(in);
}
@Override
public int compareAdditionalData(NetMember other) {
return gmsMember.compareAdditionalData(((GMSMemberAdapter) other).getGmsMember());
}
@Override
public int compareTo(NetMember o) {
return gmsMember.compareTo(((GMSMemberAdapter) o).getGmsMember());
}
@Override
public String toString() {
return "adapter(" + gmsMember + ")";
}
public void setGmsMember(GMSMember canonicalID) {
gmsMember = canonicalID;
}
}