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 booleanequals(Object object)voidfromByteArray(byte[] data)Overridden for efficiency.DategetDate()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)voidsetDate(Date date)voidsetFlags(int flags)byte[]toByteArray()Overridden for efficiency.StringtoString()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
-