|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.Dictionary<K,V> java.util.Hashtable org.jgroups.blocks.ReplicatedHashtable
ReplicatedHashMap
instead
public class ReplicatedHashtable
Provides the abstraction of a java.util.Hashtable that is replicated at several locations. Any change to the hashtable (clear, put, remove etc) will transparently be propagated to all replicas in the group. All read-only methods will always access the local replica.
Both keys and values added to the hashtable must be serializable, the reason
being that they will be sent across the network to all replicas of the group. Having said
this, it is now for example possible to add RMI remote objects to the hashtable as they
are derived from java.rmi.server.RemoteObject
which in turn is serializable.
This allows to lookup shared distributed objects by their name and invoke methods on them,
regardless of one's onw location. A ReplicatedHashtable
thus allows to
implement a distributed naming service in just a couple of lines.
An instance of this class will contact an existing member of the group to fetch its initial state.
Contrary to DistributedHashtable, this class does not make use of RpcDispatcher (and RequestCorrelator) but uses plain asynchronous messages instead.
Nested Class Summary | |
---|---|
static interface |
ReplicatedHashtable.Notification
Deprecated. |
static interface |
ReplicatedHashtable.StateTransferListener
Deprecated. |
Field Summary | |
---|---|
protected Log |
log
Deprecated. |
Constructor Summary | |
---|---|
ReplicatedHashtable(JChannel channel,
long state_timeout)
Deprecated. |
|
ReplicatedHashtable(JChannel channel,
ReplicatedHashtable.StateTransferListener l,
long state_timeout)
Deprecated. |
|
ReplicatedHashtable(java.lang.String groupname,
ChannelFactory factory,
ReplicatedHashtable.StateTransferListener l,
java.lang.String properties,
long state_timeout)
Deprecated. Creates a ReplicatedHashtable |
|
ReplicatedHashtable(java.lang.String groupname,
ChannelFactory factory,
java.lang.String properties,
long state_timeout)
Deprecated. |
Method Summary | |
---|---|
void |
_putAll(java.util.Map m)
Deprecated. |
void |
addNotifier(ReplicatedHashtable.Notification n)
Deprecated. |
void |
addStateTransferListener(ReplicatedHashtable.StateTransferListener l)
Deprecated. |
void |
block()
Deprecated. Block sending and receiving of messages until ViewAccepted is called |
void |
clear()
Deprecated. Clears this hashtable so that it contains no keys |
Channel |
getChannel()
Deprecated. |
Address |
getLocalAddress()
Deprecated. |
byte[] |
getState()
Deprecated. Answers the group state; e.g., when joining. |
java.lang.Object |
put(java.lang.Object key,
java.lang.Object value)
Deprecated. Maps the specified key to the specified value in the hashtable. |
void |
putAll(java.util.Map m)
Deprecated. Copies all of the mappings from the specified Map to this Hashtable These mappings will replace any mappings that this Hashtable had for any of the keys currently in the specified Map. |
void |
receive(Message msg)
Deprecated. Called when a message is received. |
java.lang.Object |
remove(java.lang.Object key)
Deprecated. Removes the key (and its corresponding value) from the Hashtable. |
void |
removeStateTransferListener(ReplicatedHashtable.StateTransferListener l)
Deprecated. |
void |
setState(byte[] new_state)
Deprecated. Sets the group state; e.g., when joining. |
boolean |
stateTransferRunning()
Deprecated. |
void |
suspect(Address suspected_mbr)
Deprecated. Called when a member is suspected |
void |
viewAccepted(View new_view)
Deprecated. Called when a change in membership has occurred. |
Methods inherited from class java.util.Hashtable |
---|
clone, contains, containsKey, containsValue, elements, entrySet, equals, get, hashCode, isEmpty, keys, keySet, rehash, size, toString, values |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final transient Log log
Constructor Detail |
---|
public ReplicatedHashtable(java.lang.String groupname, ChannelFactory factory, ReplicatedHashtable.StateTransferListener l, java.lang.String properties, long state_timeout)
groupname
- The name of the group to joinfactory
- The ChannelFactory which will be used to create a channelproperties
- The property string to be used to define the channelstate_timeout
- The time to wait until state is retrieved in milliseconds. A value of 0 means wait forever.public ReplicatedHashtable(java.lang.String groupname, ChannelFactory factory, java.lang.String properties, long state_timeout)
public ReplicatedHashtable(JChannel channel, long state_timeout) throws ChannelClosedException, ChannelNotConnectedException
ChannelClosedException
ChannelNotConnectedException
public ReplicatedHashtable(JChannel channel, ReplicatedHashtable.StateTransferListener l, long state_timeout) throws ChannelClosedException, ChannelNotConnectedException
ChannelClosedException
ChannelNotConnectedException
Method Detail |
---|
public boolean stateTransferRunning()
public Address getLocalAddress()
public Channel getChannel()
public void addNotifier(ReplicatedHashtable.Notification n)
public final void addStateTransferListener(ReplicatedHashtable.StateTransferListener l)
public void removeStateTransferListener(ReplicatedHashtable.StateTransferListener l)
public java.lang.Object put(java.lang.Object key, java.lang.Object value)
put
in interface java.util.Map
put
in class java.util.Hashtable
key
- - the hashtable keyvalue
- - the value
public void putAll(java.util.Map m)
putAll
in interface java.util.Map
putAll
in class java.util.Hashtable
m
- - Mappings to be stored in this mappublic void clear()
clear
in interface java.util.Map
clear
in class java.util.Hashtable
public java.lang.Object remove(java.lang.Object key)
remove
in interface java.util.Map
remove
in class java.util.Hashtable
key
- - the key to be removed.
public void _putAll(java.util.Map m)
Map.putAll(java.util.Map)
public void receive(Message msg)
MessageListener
receive
in interface MessageListener
public byte[] getState()
MessageListener
getState
in interface MessageListener
public void setState(byte[] new_state)
MessageListener
setState
in interface MessageListener
public void viewAccepted(View new_view)
MembershipListener
Channel.connect(String)
returns.
viewAccepted
in interface MembershipListener
public void suspect(Address suspected_mbr)
suspect
in interface MembershipListener
public void block()
block
in interface MembershipListener
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |