|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjgroup.relacs.gm.TotalOrderLayer
public final class TotalOrderLayer
The TotalOrderLayer class implements the multicast service,
and uses the underlying reliable multicast service.
Total ordering is accomplished using distributed agreement protocol similar
to that of [Birman and Joseph 1987].
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface jgroup.core.Layer |
|---|
Layer.FinalizeLayer |
| Nested classes/interfaces inherited from interface jgroup.core.MembershipListener |
|---|
MembershipListener.AllowDuplicateViews |
| Method Summary | |
|---|---|
void |
addListener(java.lang.Object listener)
Add a listener object for this layer to provide upcalls to in response to multicast events. |
java.lang.Object |
deliverObject(java.lang.Object msg,
MemberId id,
int seq)
Upcall that is invoked by Jgroup to deliver a message msg,
corresponding to a single serialized object. |
java.lang.Object |
deliverStream(java.io.InputStream msg,
MemberId sender,
int seq)
Upcall that is invoked by Jgroup to deliver a message msg,
corresponding to an input stream from which the message may be read. |
static TotalOrderLayer |
getLayer(MembershipService pgms,
MulticastService mcast)
|
java.io.OutputStream |
getMessage(java.lang.String protocol)
Returns an output stream to be used to encode a message. |
java.lang.String |
getProtocolName()
Returns a string naming the protocol implemented by this multicast listener. |
void |
hasLeft()
Upcall that is invoked by Jgroup to acknowledge the fact that this object has left the group. |
static void |
main(java.lang.String[] args)
|
void |
mcast(java.io.OutputStream stream,
AckListener ackl)
Multicast a message enclosed in the stream out to the
members of the current view of the group. |
void |
mcast(java.io.OutputStream out,
AckListener ackl,
ChainIdentifier chId)
Multicast a message enclosed in the stream out to the
members of the current view of the group. |
void |
mcast(java.lang.String protocol,
java.lang.Object obj,
AckListener ackl)
Multicast a serializable object to the members of the current view of a group. |
void |
prepareChange()
Upcall that is invoked by the group membership service to notify that the current view is not valid any more, and the group membership service is trying to reach an agreement on a new view. |
void |
viewChange(View view)
Upcall invoked on members implementing the MembershipListener
interface, when a view change occurs. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static TotalOrderLayer getLayer(MembershipService pgms,
MulticastService mcast)
throws JgroupException
JgroupExceptionpublic void addListener(java.lang.Object listener)
addListener in interface Layerlistener - An Object representation of the listener interface.
This will typically be cast to the appropriate listener interface
type after checking the type with the instanceof operator.public void viewChange(View view)
MembershipListenerMembershipListener
interface, when a view change occurs.
viewChange in interface MembershipListenerview - The new view that has been installed.MembershipServicepublic void prepareChange()
MembershipListener
prepareChange in interface MembershipListenerMembershipServicepublic void hasLeft()
MembershipListenerleave method has been invoked on the group membership
service.
hasLeft in interface MembershipListenerMembershipService
public void mcast(java.io.OutputStream out,
AckListener ackl,
ChainIdentifier chId)
throws JgroupException
MulticastServiceout to the
members of the current view of the group.
The invoker may specify an AckListener object, which
will be notified when objects returned by members delivering this
message, are received.
mcast in interface MulticastServiceout - The stream message to be multicast.ackl - Acknowledgement listener to be notified; if null, no listener
will be notified.chId - Identifier of a previous message (delivered through a
deliverStream).
This is only required for multicast messages
that relate to some previous multicast message. It will only
be used in extremely rare cases, to avoid that the membership service
delays the message while running the agreement protocol, which would
otherwise prevent the agreement protocol from concluding.
JgroupException - Rasied if the group manager receives a request to multicast a
message after having joined a group, but before having received
the first view for it; or after having requested to leave the group.
public void mcast(java.io.OutputStream stream,
AckListener ackl)
throws JgroupException
MulticastServiceout to the
members of the current view of the group.
The invoker may specify an AckListener object, which
will be notified when objects returned by members delivering this
message, are received.
mcast in interface MulticastServicestream - The stream message to be multicast.ackl - Acknowledgement listener to be notified; if null, no listener
will be notified.
JgroupException - Rasied if the group manager receives a request to multicast a
message after having joined a group, but before having received
the first view for it; or after having requested to leave the group.
public void mcast(java.lang.String protocol,
java.lang.Object obj,
AckListener ackl)
throws JgroupException,
java.io.IOException
MulticastService
The invoker may specify an AckListener object, which
will be notified when objects returned by members delivering this
message are received.
mcast in interface MulticastServiceprotocol - The protocol for the message object to be multicast.obj - The message object to be multicast.ackl - Acknowledgement listener to be notified; if null, no listener
will be notified.
JgroupException - Rasied if the group manager receives a request to multicast a
message after having joined a group, but before having received
the first view for it; or after having requested to leave the group.
java.io.IOException - Raised if the object to be multicast could not be serialized.
public java.io.OutputStream getMessage(java.lang.String protocol)
throws java.io.IOException
MulticastServicemcast(OutputStream, AckListener) accepts only
multicast messages obtained through this method. The provided output
stream is a memory data structure optimized to avoid useless data
copies.
getMessage in interface MulticastServiceprotocol - The protocol name used for the OutputStream message
object to be multicast.
java.io.IOExceptionpublic java.lang.String getProtocolName()
MulticastListener
getProtocolName in interface MulticastListener
public java.lang.Object deliverStream(java.io.InputStream msg,
MemberId sender,
int seq)
MulticastListenermsg,
corresponding to an input stream from which the message may be read.
deliverStream in interface MulticastListenermsg - the input stream from which the message can be read.sender - the sender of the multicast messageseq - the sequence number of this multicast message
public java.lang.Object deliverObject(java.lang.Object msg,
MemberId id,
int seq)
MulticastListenermsg,
corresponding to a single serialized object.
deliverObject in interface MulticastListenermsg - the object that was multicasted.id - the sender of the multicast messageseq - the sequence number of this multicast message
public static void main(java.lang.String[] args)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||