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
All Methods Instance Methods Concrete Methods 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
-
-
-
-
Constructor Detail
-
DateAndFlags
public DateAndFlags()
-
DateAndFlags
public DateAndFlags(long date, int flags)- Parameters:
flags- 0 - 65535
-
DateAndFlags
public DateAndFlags(Date date, int flags)
- Parameters:
flags- 0 - 65535
-
-
Method Detail
-
getFlags
public int getFlags()
-
setFlags
public void setFlags(int flags)
- Parameters:
flags- 0 - 65535
-
getDate
public Date 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
public void setDate(Date date)
-
readBytes
public void readBytes(InputStream in) throws DataFormatException, IOException
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
public void writeBytes(OutputStream out) throws DataFormatException, IOException
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
public void fromByteArray(byte[] data) throws DataFormatExceptionOverridden for efficiency.- Specified by:
fromByteArrayin interfaceDataStructure- Overrides:
fromByteArrayin classDataStructureImpl- Parameters:
data- non-null- Throws:
DataFormatException- if null or wrong length
-
-