Package net.i2p.data.i2cp
Class I2CPMessageImpl
- java.lang.Object
- 
- net.i2p.data.i2cp.I2CPMessageImpl
 
- 
- All Implemented Interfaces:
- I2CPMessage
 - Direct Known Subclasses:
- BandwidthLimitsMessage,- BlindingInfoMessage,- CreateLeaseSetMessage,- CreateSessionMessage,- DestLookupMessage,- DestReplyMessage,- DestroySessionMessage,- DisconnectMessage,- GetBandwidthLimitsMessage,- GetDateMessage,- HostLookupMessage,- HostReplyMessage,- MessagePayloadMessage,- MessageStatusMessage,- PoisonI2CPMessage,- ReceiveMessageBeginMessage,- ReceiveMessageEndMessage,- ReconfigureSessionMessage,- ReportAbuseMessage,- RequestLeaseSetMessage,- RequestVariableLeaseSetMessage,- SendMessageMessage,- SessionStatusMessage,- SetDateMessage
 
 public abstract class I2CPMessageImpl extends Object implements I2CPMessage Defines the base message implementation. As of 0.9.48, does NOT extend DataStructureImpl.- Author:
- jrandom
 
- 
- 
Constructor SummaryConstructors Constructor Description I2CPMessageImpl()
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract voiddoReadMessage(InputStream buf, int size)Read in the payload part of the message (after the initial 4 byte size and 1 byte type)protected abstract byte[]doWriteMessage()Write out the payload part of the message (not including the 4 byte size and 1 byte type)voidreadBytes(InputStream in)voidreadMessage(InputStream in)Validate the type and size of the message, and then read the message into the data structures.voidreadMessage(InputStream in, int length, int type)Read the body into the data structuresSessionIdsessionId()Return the SessionId for this type of message.voidwriteBytes(OutputStream out)voidwriteMessage(OutputStream out)Write out the full message to the stream, including the 4 byte size and 1 byte type header.- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface net.i2p.data.i2cp.I2CPMessagegetType
 
- 
 
- 
- 
- 
Method Detail- 
readMessagepublic void readMessage(InputStream in) throws I2CPMessageException, IOException Validate the type and size of the message, and then read the message into the data structures.- Specified by:
- readMessagein interface- I2CPMessage
- Parameters:
- in- stream to read from
- Throws:
- IOException
- I2CPMessageException- if the stream doesn't contain a valid message that this class can read.
 
 - 
readMessagepublic void readMessage(InputStream in, int length, int type) throws I2CPMessageException, IOException Read the body into the data structures- Specified by:
- readMessagein interface- I2CPMessage
- Parameters:
- length- number of bytes in the message payload
- in- stream to read from
- type- type of message (should equal getType())
- Throws:
- IOException
- I2CPMessageException- if the stream doesn't contain a valid message that this class can read.
 
 - 
doReadMessageprotected abstract void doReadMessage(InputStream buf, int size) throws I2CPMessageException, IOException Read in the payload part of the message (after the initial 4 byte size and 1 byte type)- Parameters:
- buf- InputStream
- size- payload size
- Throws:
- I2CPMessageException
- IOException
 
 - 
doWriteMessageprotected abstract byte[] doWriteMessage() throws I2CPMessageException, IOExceptionWrite out the payload part of the message (not including the 4 byte size and 1 byte type)- Returns:
- byte array
- Throws:
- I2CPMessageException
- IOException
 
 - 
writeMessagepublic void writeMessage(OutputStream out) throws I2CPMessageException, IOException Write out the full message to the stream, including the 4 byte size and 1 byte type header.- Specified by:
- writeMessagein interface- I2CPMessage
- Parameters:
- out- OutputStream
- Throws:
- IOException
- I2CPMessageException- if the current object doesn't have sufficient data to write a properly formatted message.
 
 - 
readBytespublic void readBytes(InputStream in) throws DataFormatException, IOException - Throws:
- DataFormatException
- IOException
 
 - 
writeBytespublic void writeBytes(OutputStream out) throws DataFormatException, IOException - Throws:
- DataFormatException
- IOException
 
 - 
sessionIdpublic SessionId sessionId() Return the SessionId for this type of message. Most but not all message types include a SessionId. The ones that do already define getSessionId(), but some return a SessionId and some return a long, so we define a new method here.- Specified by:
- sessionIdin interface- I2CPMessage
- Returns:
- null always. Extending classes with a SessionId must override.
- Since:
- 0.9.21
 
 
- 
 
-