1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
/*
* 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.catalina.tribes;
/**
* MembershipService Interface<br>
* The <code>MembershipService</code> interface is the membership component
* at the bottom layer, the IO layer (for layers see the javadoc for the {@link Channel} interface).<br>
* @author Filip Hanik
* @version $Revision: 467222 $, $Date: 2006-10-24 05:17:11 +0200 (mar., 24 oct. 2006) $
*/
public interface MembershipService {
public static final int MBR_RX = Channel.MBR_RX_SEQ;
public static final int MBR_TX = Channel.MBR_TX_SEQ;
/**
* Sets the properties for the membership service. This must be called before
* the <code>start()</code> method is called.
* The properties are implementation specific.
* @param properties - to be used to configure the membership service.
*/
public void setProperties(java.util.Properties properties);
/**
* Returns the properties for the configuration used.
*/
public java.util.Properties getProperties();
/**
* Starts the membership service. If a membership listeners is added
* the listener will start to receive membership events.
* Performs a start level 1 and 2
* @throws java.lang.Exception if the service fails to start.
*/
public void start() throws java.lang.Exception;
/**
* Starts the membership service. If a membership listeners is added
* the listener will start to receive membership events.
* @param level - level MBR_RX starts listening for members, level MBR_TX
* starts broad casting the server
* @throws java.lang.Exception if the service fails to start.
* @throws java.lang.IllegalArgumentException if the level is incorrect.
*/
public void start(int level) throws java.lang.Exception;
/**
* Starts the membership service. If a membership listeners is added
* the listener will start to receive membership events.
* @param level - level MBR_RX stops listening for members, level MBR_TX
* stops broad casting the server
* @throws java.lang.Exception if the service fails to stop
* @throws java.lang.IllegalArgumentException if the level is incorrect.
*/
public void stop(int level);
/**
* @return true if the the group contains members
*/
public boolean hasMembers();
/**
*
* @param mbr Member
* @return Member
*/
public Member getMember(Member mbr);
/**
* Returns a list of all the members in the cluster.
*/
public Member[] getMembers();
/**
* Returns the member object that defines this member
*/
public Member getLocalMember(boolean incAliveTime);
/**
* Return all members by name
*/
public String[] getMembersByName() ;
/**
* Return the member by name
*/
public Member findMemberByName(String name) ;
/**
* Sets the local member properties for broadcasting
*/
public void setLocalMemberProperties(String listenHost, int listenPort);
/**
* Sets the membership listener, only one listener can be added.
* If you call this method twice, the last listener will be used.
* @param listener The listener
*/
public void setMembershipListener(MembershipListener listener);
/**
* removes the membership listener.
*/
public void removeMembershipListener();
/**
* Set a payload to be broadcasted with each membership
* broadcast.
* @param payload byte[]
*/
public void setPayload(byte[] payload);
public void setDomain(byte[] domain);
}
|