Package org.jgroups
Class View
- java.lang.Object
-
- org.jgroups.View
-
- All Implemented Interfaces:
java.io.Externalizable
,java.io.Serializable
,java.lang.Cloneable
,Streamable
- Direct Known Subclasses:
MergeView
public class View extends java.lang.Object implements java.io.Externalizable, java.lang.Cloneable, Streamable
A view is a local representation of the current membership of a group. Only one view is installed in a channel at a time. Views contain the address of its creator, an ID and a list of member addresses. These adresses are ordered, and the first address is always the coordinator of the view. This way, each member of the group knows who the new coordinator will be if the current one crashes or leaves the group. The views are sent between members using the VIEW_CHANGE event- Version:
- $Id: View.java,v 1.18 2007/10/01 07:24:41 belaban Exp $
- Author:
- Bela Ban
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Vector<Address>
members
A list containing all the members of the view This list is always ordered, with the coordinator being the first member.protected java.util.Map<java.lang.String,java.lang.Object>
payload
protected ViewId
vid
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPayload(java.lang.String key, java.lang.Object value)
Adds a key and value to the view.java.lang.Object
clone()
creates a copy of this viewboolean
containsMember(Address mbr)
returns true, if this view contains a certain memberboolean
equals(java.lang.Object obj)
Address
getCreator()
returns the creator of this view if this view was created with the empty constructur, null will be returnedjava.util.Vector<Address>
getMembers()
Returns a reference to the List of members (ordered) Do NOT change this list, hence your will invalidate the view Make a copy if you have to modify it.java.lang.Object
getPayload(java.lang.String key)
ViewId
getVid()
returns the view ID of this view if this view was created with the empty constructur, null will be returnedint
hashCode()
java.lang.String
printDetails()
debug onlyvoid
readExternal(java.io.ObjectInput in)
void
readFrom(java.io.DataInputStream in)
Read the state of the current object (including superclasses) from instream Note that the input stream must not be closedint
serializedSize()
int
size()
returns the number of members in this viewjava.lang.String
toString()
void
writeExternal(java.io.ObjectOutput out)
void
writeTo(java.io.DataOutputStream out)
Write the entire state of the current object (including superclasses) to outstream.
-
-
-
Field Detail
-
vid
protected ViewId vid
-
members
protected java.util.Vector<Address> members
A list containing all the members of the view This list is always ordered, with the coordinator being the first member. the second member will be the new coordinator if the current one disappears or leaves the group.
-
payload
protected java.util.Map<java.lang.String,java.lang.Object> payload
-
-
Constructor Detail
-
View
public View()
creates an empty view, should not be used
-
View
public View(ViewId vid, java.util.Vector<Address> members)
Creates a new view- Parameters:
vid
- The view id of this view (can not be null)members
- Contains a list of all the members in the view, can be empty but not null.
-
-
Method Detail
-
getVid
public ViewId getVid()
returns the view ID of this view if this view was created with the empty constructur, null will be returned- Returns:
- the view ID of this view
-
getCreator
public Address getCreator()
returns the creator of this view if this view was created with the empty constructur, null will be returned- Returns:
- the creator of this view in form of an Address object
-
getMembers
public java.util.Vector<Address> getMembers()
Returns a reference to the List of members (ordered) Do NOT change this list, hence your will invalidate the view Make a copy if you have to modify it.- Returns:
- a reference to the ordered list of members in this view
-
containsMember
public boolean containsMember(Address mbr)
returns true, if this view contains a certain member- Parameters:
mbr
- - the address of the member,- Returns:
- true if this view contains the member, false if it doesn't if the argument mbr is null, this operation returns false
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
size
public int size()
returns the number of members in this view- Returns:
- the number of members in this view 0..n
-
clone
public java.lang.Object clone()
creates a copy of this view- Overrides:
clone
in classjava.lang.Object
- Returns:
- a copy of this view
-
printDetails
public java.lang.String printDetails()
debug only
-
addPayload
public void addPayload(java.lang.String key, java.lang.Object value)
Adds a key and value to the view. Since the payloads will be shipped around *with* the view, so the keys and values need to be serializable. Note that the total serialized size of all keys and values cannot exceed 65000 bytes !- Parameters:
key
-value
-
-
getPayload
public java.lang.Object getPayload(java.lang.String key)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
- Specified by:
writeExternal
in interfacejava.io.Externalizable
- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
- Specified by:
readExternal
in interfacejava.io.Externalizable
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
writeTo
public void writeTo(java.io.DataOutputStream out) throws java.io.IOException
Description copied from interface:Streamable
Write the entire state of the current object (including superclasses) to outstream. Note that the output stream must not be closed- Specified by:
writeTo
in interfaceStreamable
- Throws:
java.io.IOException
-
readFrom
public void readFrom(java.io.DataInputStream in) throws java.io.IOException, java.lang.IllegalAccessException, java.lang.InstantiationException
Description copied from interface:Streamable
Read the state of the current object (including superclasses) from instream Note that the input stream must not be closed- Specified by:
readFrom
in interfaceStreamable
- Throws:
java.io.IOException
java.lang.IllegalAccessException
java.lang.InstantiationException
-
serializedSize
public int serializedSize()
-
-