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
public class DateAndFlags extends DataStructureImpl
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:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description protected int
_flags
-
Constructor Summary
Constructors Constructor Description DateAndFlags()
DateAndFlags(long date, int flags)
DateAndFlags(Date date, int flags)
-
Method Summary
Modifier and Type Method Description boolean
equals(Object object)
void
fromByteArray(byte[] data)
Overridden for efficiency.Date
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
setDate(Date date)
void
setFlags(int flags)
byte[]
toByteArray()
Overridden for efficiency.String
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
-