Rice Pastry API

org.mpisws.p2p.transport.peerreview.message
Class UserDataMessage<Handle extends RawSerializable>

java.lang.Object
  extended by org.mpisws.p2p.transport.peerreview.message.PeerReviewMessage
      extended by org.mpisws.p2p.transport.peerreview.message.UserDataMessage<Handle>
All Implemented Interfaces:
Evidence, PeerReviewConstants, RawSerializable
Direct Known Subclasses:
OutgoingUserDataMessage

public class UserDataMessage<Handle extends RawSerializable>
extends PeerReviewMessage
implements Evidence

Note, it's only Evidence when the type has been changed. MSG_USERDATA byte type = MSG_USERDATA long long topSeq handle senderHandle hash hTopMinusOne signature sig byte relevantCode // 0xFF = fully, otherwise length in bytes [payload bytes follow]

Author:
Jeff Hoye

Field Summary
 
Fields inherited from interface org.mpisws.p2p.transport.peerreview.PeerReviewConstants
CHAL_AUDIT, CHAL_SEND, DEFAULT_AUTH_PUSH_INTERVAL_MICROS, DEFAULT_CHECKPOINT_INTERVAL_MICROS, DEFAULT_TIME_TOLERANCE_MICROS, EVT_ACK, EVT_CHECKPOINT, EVT_INIT, EVT_MAX_SOCKET_EVT, EVT_MIN_SOCKET_EVT, EVT_RECV, EVT_SEND, EVT_SENDSIGN, EVT_SIGN, EVT_SOCKET_CAN_READ, EVT_SOCKET_CAN_RW, EVT_SOCKET_CAN_WRITE, EVT_SOCKET_CLOSE, EVT_SOCKET_CLOSED, EVT_SOCKET_EXCEPTION, EVT_SOCKET_OPEN_INCOMING, EVT_SOCKET_OPEN_OUTGOING, EVT_SOCKET_OPENED_OUTGOING, EVT_SOCKET_READ, EVT_SOCKET_SHUTDOWN_OUTPUT, EVT_SOCKET_WRITE, EX_TYPE_ClosedChannel, EX_TYPE_IO, EX_TYPE_Unknown, MAINTENANCE_INTERVAL_MICROS, MAX_STATUS_INFO, MSG_ACCUSATION, MSG_ACK, MSG_AUTHPUSH, MSG_AUTHREQ, MSG_AUTHRESP, MSG_CHALLENGE, MSG_RESPONSE, MSG_USERDATA, MSG_USERDGRAM, PROOF_INCONSISTENT, PROOF_NONCONFORMANT, STATUS_EXPOSED, STATUS_SUSPECTED, STATUS_TRUSTED, TI_AUTH_PUSH, TI_CHECKPOINT, TI_MAINTENANCE, TI_MAX_RESERVED, TI_STATUS_INFO
 
Constructor Summary
UserDataMessage(long topSeq, Handle senderHandle, byte[] topMinusOne, byte[] sig, java.nio.ByteBuffer message, int relevantlen, java.util.Map<java.lang.String,java.lang.Object> options)
           
 
Method Summary
static
<H extends RawSerializable>
UserDataMessage<H>
build(InputBuffer buf, Serializer<H> serializer, int hashSize, int sigSize, java.util.Map<java.lang.String,java.lang.Object> options)
           
 byte[] getHTopMinusOne()
           
 byte[] getInnerHash(Serializer<Handle> serializer, HashProvider hasher)
          recvEntryHeader is the SendHandle, topSeq, (relevantLen < payload)?
 java.util.Map<java.lang.String,java.lang.Object> getOptions()
           
 java.nio.ByteBuffer getPayload()
           
 int getPayloadLen()
           
 EvtRecv<Handle> getReceiveEvent(HashProvider hasher)
           
 short getRelevantLen()
           
 Handle getSenderHandle()
           
 byte[] getSignature()
           
 long getTopSeq()
           
 short getType()
           
 void serialize(OutputBuffer buf)
           
 void setType(short newType)
           
 
Methods inherited from class org.mpisws.p2p.transport.peerreview.message.PeerReviewMessage
serialize
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UserDataMessage

public UserDataMessage(long topSeq,
                       Handle senderHandle,
                       byte[] topMinusOne,
                       byte[] sig,
                       java.nio.ByteBuffer message,
                       int relevantlen,
                       java.util.Map<java.lang.String,java.lang.Object> options)
Method Detail

getType

public short getType()
Specified by:
getType in class PeerReviewMessage

serialize

public void serialize(OutputBuffer buf)
               throws java.io.IOException
Specified by:
serialize in interface RawSerializable
Throws:
java.io.IOException

build

public static <H extends RawSerializable> UserDataMessage<H> build(InputBuffer buf,
                                                                   Serializer<H> serializer,
                                                                   int hashSize,
                                                                   int sigSize,
                                                                   java.util.Map<java.lang.String,java.lang.Object> options)
                                                        throws java.io.IOException
Throws:
java.io.IOException

getTopSeq

public long getTopSeq()

getSenderHandle

public Handle getSenderHandle()

getHTopMinusOne

public byte[] getHTopMinusOne()

getSignature

public byte[] getSignature()

getRelevantLen

public short getRelevantLen()

getPayload

public java.nio.ByteBuffer getPayload()

getReceiveEvent

public EvtRecv<Handle> getReceiveEvent(HashProvider hasher)

getInnerHash

public byte[] getInnerHash(Serializer<Handle> serializer,
                           HashProvider hasher)
                    throws java.io.IOException
recvEntryHeader is the SendHandle, topSeq, (relevantLen < payload)?

Parameters:
hasher -
Returns:
Throws:
java.io.IOException

setType

public void setType(short newType)

getPayloadLen

public int getPayloadLen()

getOptions

public java.util.Map<java.lang.String,java.lang.Object> getOptions()
Specified by:
getOptions in class PeerReviewMessage

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.