Package net.i2p.data

Class 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:
  • Field Details

    • _flags

      protected int _flags
  • Constructor Details

    • 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 Details

    • 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: 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 formatted
      IOException - if there was a problem reading the stream
    • writeBytes

      public void writeBytes(OutputStream out) throws DataFormatException, IOException
      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 written
      IOException - if there was a problem writing to the stream
    • toByteArray

      public byte[] toByteArray()
      Overridden for efficiency.
      Specified by:
      toByteArray in interface DataStructure
      Overrides:
      toByteArray in class DataStructureImpl
      Returns:
      may be null if data is not set
    • fromByteArray

      public void fromByteArray(byte[] data) throws DataFormatException
      Overridden for efficiency.
      Specified by:
      fromByteArray in interface DataStructure
      Overrides:
      fromByteArray in class DataStructureImpl
      Parameters:
      data - non-null
      Throws:
      DataFormatException - if null or wrong length
    • equals

      public boolean equals(Object object)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object