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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
void
fromByteArray
(byte[] data) Overridden for efficiency.getDate()
The Date object is created here, it is not cached.int
getFlags()
long
getTime()
int
hashCode()
void
readBytes
(InputStream in) Load up the current object with data from the given stream.void
setDate
(long date) void
void
setFlags
(int flags) byte[]
Overridden for efficiency.toString()
void
writeBytes
(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:DataStructure
Load 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:DataStructure
Write 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:
toByteArray
in interfaceDataStructure
- Overrides:
toByteArray
in classDataStructureImpl
- Returns:
- may be null if data is not set
-
fromByteArray
Overridden for efficiency.- Specified by:
fromByteArray
in interfaceDataStructure
- Overrides:
fromByteArray
in classDataStructureImpl
- Parameters:
data
- non-null- Throws:
DataFormatException
- if null or wrong length
-
equals
-
hashCode
public int hashCode() -
toString
-