Class TypeStrategies.FloatTypeStrategy

    • Constructor Detail

      • FloatTypeStrategy

        public FloatTypeStrategy()
    • Method Detail

      • estimateSizeBytes

        public int estimateSizeBytes​(Float value)
        Description copied from interface: TypeStrategy
        Estimate the size in bytes that writing this value to memory would require. This method is not required to be exactly correct, but many implementations might be. Implementations should err on the side of over-estimating if exact sizing is not efficient. Example usage of this method is estimating heap memory usage for an aggregator or the amount of buffer which might need allocated to then TypeStrategy.write(java.nio.ByteBuffer, T, int) a value
        Specified by:
        estimateSizeBytes in interface TypeStrategy<Float>
      • read

        public Float read​(ByteBuffer buffer,
                          int offset)
        Description copied from interface: TypeStrategy
        Read a non-null value from the ByteBuffer at the requested position. This will not permanently move the underlying Buffer.position(), but may temporarily modify the buffer position during reading so cannot be considered thread safe usage of the buffer. The contract of this method is that any value returned from this method MUST be completely detached from the underlying ByteBuffer, since it might outlive the memory location being allocated to hold the object. In other words, if an object is memory mapped, it must be copied on heap, or relocated to another memory location that is owned by the caller with TypeStrategy.write(java.nio.ByteBuffer, T, int).
        Specified by:
        read in interface TypeStrategy<Float>
      • write

        public int write​(ByteBuffer buffer,
                         Float value,
                         int maxSizeBytes)
        Description copied from interface: TypeStrategy
        Write a non-null value to the ByteBuffer at position Buffer.position(). This will move the underlying position by the size of the value written. This method returns the number of bytes written. If writing the value would take more than 'maxSizeBytes', this method will return a negative value indicating the number of additional bytes that would be required to fully write the value. Partial results may be written to the buffer when in this state, and the position may be left at whatever point the implementation ran out of space while writing the value. Callers should save the starting position if it is necessary to 'rewind' after a partial write. Callers MUST check that the return value is positive which indicates a successful write, while a negative response a partial write.
        Specified by:
        write in interface TypeStrategy<Float>
        Returns:
        number of bytes written