Interface ISchemaVersion

  • All Known Implementing Classes:
    SchemaVersionOne

    public interface ISchemaVersion
    A serialization schema for HLLs. Reads and writes HLL metadata to and from byte[] representations.
    • Method Detail

      • paddingBytes

        int paddingBytes​(HLLType type)
        The number of metadata bytes required for a serialized HLL of the specified type.
        Parameters:
        type - the type of the serialized HLL
        Returns:
        the number of padding bytes needed in order to fully accommodate the needed metadata.
      • writeMetadata

        void writeMetadata​(byte[] bytes,
                           IHLLMetadata metadata)
        Writes metadata bytes to serialized HLL.
        Parameters:
        bytes - the padded data bytes of the HLL
        metadata - the metadata to write to the padding bytes
      • readMetadata

        IHLLMetadata readMetadata​(byte[] bytes)
        Reads the metadata bytes of the serialized HLL.
        Parameters:
        bytes - the serialized HLL
        Returns:
        the HLL metadata
      • getSerializer

        IWordSerializer getSerializer​(HLLType type,
                                      int wordLength,
                                      int wordCount)
        Builds an HLL serializer that matches this schema version.
        Parameters:
        type - the HLL type that will be serialized. This cannot be null.
        wordLength - the length of the 'words' that comprise the data of the HLL. Words must be at least 5 bits and at most 64 bits long.
        wordCount - the number of 'words' in the HLL's data.
        Returns:
        a byte array serializer used to serialize a HLL according to this schema version's specification.
        See Also:
        paddingBytes(HLLType), IWordSerializer
      • getDeserializer

        IWordDeserializer getDeserializer​(HLLType type,
                                          int wordLength,
                                          byte[] bytes)
        Builds an HLL deserializer that matches this schema version.
        Parameters:
        type - the HLL type that will be deserialized. This cannot be null.
        wordLength - the length of the 'words' that comprise the data of the serialized HLL. Words must be at least 5 bits and at most 64 bits long.
        bytes - the serialized HLL to deserialize. This cannot be null.
        Returns:
        a byte array deserializer used to deserialize a HLL serialized according to this schema version's specification.
      • schemaVersionNumber

        int schemaVersionNumber()
        Returns:
        the schema version number.