Package net.i2p.data
Class DateAndFlags
java.lang.Object
net.i2p.data.DataStructureImpl
net.i2p.data.DateAndFlags
- All Implemented Interfaces:
Serializable,DataStructure
- Direct Known Subclasses:
SendMessageOptions
A six-byte Date and 2 bytes of flags, since a Date won't encroach
on the top two bytes until the year 10889.
The flag format is not specified here. The bits may be used in
an application-specific manner. The application should
be designed so that a flags value of 0 is the default, for
compatibility with an 8-byte Date.
See extending class net.i2p.client.SendMessageOptions for more info.
If we really need some more bits we could use the first few bits
of the third byte.
- Since:
- 0.8.4
- Author:
- zzz
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanvoidfromByteArray(byte[] data) Overridden for efficiency.getDate()The Date object is created here, it is not cached.intgetFlags()longgetTime()inthashCode()voidreadBytes(InputStream in) Load up the current object with data from the given stream.voidsetDate(long date) voidvoidsetFlags(int flags) byte[]Overridden for efficiency.toString()voidwriteBytes(OutputStream out) Write out the data structure to the stream, using the format defined in the I2P data structure specification.Methods inherited from class net.i2p.data.DataStructureImpl
calculateHash, fromBase64, read, toBase64
-
Field Details
-
_flags
protected int _flags
-
-
Constructor Details
-
DateAndFlags
public DateAndFlags() -
DateAndFlags
public DateAndFlags(long date, int flags) - Parameters:
flags- 0 - 65535
-
DateAndFlags
- Parameters:
flags- 0 - 65535
-
-
Method Details
-
getFlags
public int getFlags() -
setFlags
public void setFlags(int flags) - Parameters:
flags- 0 - 65535
-
getDate
The Date object is created here, it is not cached. Use getTime() if you only need the long value. -
getTime
public long getTime() -
setDate
public void setDate(long date) -
setDate
-
readBytes
Description copied from interface:DataStructureLoad up the current object with data from the given stream. Data loaded this way must match the I2P data structure specification. Warning - many classes will throw IllegalStateException if data is already set.- Parameters:
in- stream to read from- Throws:
DataFormatException- if the data is improperly formattedIOException- if there was a problem reading the stream
-
writeBytes
Description copied from interface:DataStructureWrite out the data structure to the stream, using the format defined in the I2P data structure specification.- Parameters:
out- stream to write to- Throws:
DataFormatException- if the data was incomplete or not yet ready to be writtenIOException- if there was a problem writing to the stream
-
toByteArray
public byte[] toByteArray()Overridden for efficiency.- Specified by:
toByteArrayin interfaceDataStructure- Overrides:
toByteArrayin classDataStructureImpl- Returns:
- may be null if data is not set
-
fromByteArray
Overridden for efficiency.- Specified by:
fromByteArrayin interfaceDataStructure- Overrides:
fromByteArrayin classDataStructureImpl- Parameters:
data- non-null- Throws:
DataFormatException- if null or wrong length
-
equals
-
hashCode
public int hashCode() -
toString
-