Class HighLowContainer


  • public class HighLowContainer
    extends java.lang.Object
    • Constructor Detail

      • HighLowContainer

        public HighLowContainer()
    • Method Detail

      • getContainer

        public Container getContainer​(long containerIdx)
      • searchContainer

        public ContainerWithIndex searchContainer​(byte[] highPart)
        search the container by the given 48 bit high part key
        Parameters:
        highPart - the 48 bit key array
        Returns:
        the container with the container index
      • put

        public void put​(byte[] highPart,
                        Container container)
        put the 48 bit key and the corresponding container
        Parameters:
        highPart - the 48 bit key
        container - the container
      • remove

        public void remove​(byte[] highPart)
        Attempt to remove the container that corresponds to the 48 bit key.
        Parameters:
        highPart - the 48 bit key
      • containerIterator

        public ContainerIterator containerIterator()
        get a container iterator
        Returns:
        a container iterator
      • highKeyIterator

        public KeyIterator highKeyIterator()
        get a key iterator
        Returns:
        a key iterator
      • highKeyLeafNodeIterator

        public LeafNodeIterator highKeyLeafNodeIterator​(boolean reverse)
        Parameters:
        reverse - true :ascending order, false: descending order
        Returns:
        the leaf node iterator
      • replaceContainer

        public void replaceContainer​(long containerIdx,
                                     Container container)
        replace the specified position one with a fresh container
        Parameters:
        containerIdx - the position of the container
        container - the fresh container
      • isEmpty

        public boolean isEmpty()
        whether it's empty
        Returns:
        true: empty,false: not empty
      • serialize

        public void serialize​(java.nio.ByteBuffer buffer)
                       throws java.io.IOException
        serialize into the ByteBuffer in little endian
        Parameters:
        buffer - the ByteBuffer should be large enough to hold the data
        Throws:
        java.io.IOException - indicate exception happened
      • deserialize

        public void deserialize​(java.nio.ByteBuffer buffer)
                         throws java.io.IOException
        deserialize from the input ByteBuffer in little endian
        Parameters:
        buffer - the ByteBuffer
        Throws:
        java.io.IOException - indicate exception happened
      • serializedSizeInBytes

        public long serializedSizeInBytes()
        serialized size in bytes
        Returns:
        the size in bytes
      • serialize

        public void serialize​(java.io.DataOutput dataOutput)
                       throws java.io.IOException
        serialize into the byte stream
        Parameters:
        dataOutput - the output stream
        Throws:
        java.io.IOException - indicate the io exception happened
      • deserialize

        public void deserialize​(java.io.DataInput dataInput)
                         throws java.io.IOException
        deserialize from the input byte stream
        Parameters:
        dataInput - the input byte stream
        Throws:
        java.io.IOException - indicate the io exception happened
      • clear

        public void clear()
        clear to be a empty fresh one
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object object)
        Overrides:
        equals in class java.lang.Object