Class SimpleFloatBufferAggregator

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void aggregate​(ByteBuffer buf, int position)
      Aggregates metric values into the given aggregate byte representation Implementations of this method must read in the aggregate value from the buffer at the given position, aggregate the next element of data and write the updated aggregate value back into the buffer.
      abstract void aggregate​(ByteBuffer buf, int position, float value)  
      void close()
      Release any resources used by the aggregator
      Object get​(ByteBuffer buf, int position)
      Returns the intermediate object representation of the given aggregate.
      double getDouble​(ByteBuffer buffer, int position)
      Returns the double representation of the given aggregate byte array Converts the given byte buffer representation into the intermediate aggregate value.
      float getFloat​(ByteBuffer buf, int position)
      Returns the float representation of the given aggregate byte array Converts the given byte buffer representation into the intermediate aggregate value.
      long getLong​(ByteBuffer buf, int position)
      Returns the long representation of the given aggregate byte array Converts the given byte buffer representation into the intermediate aggregate value.
      void inspectRuntimeShape​(RuntimeShapeInspector inspector)
      Implementations of this method should call inspector.visit() with all fields of this class, which meet two conditions: 1.
    • Method Detail

      • aggregate

        public final void aggregate​(ByteBuffer buf,
                                    int position)
        Description copied from interface: BufferAggregator
        Aggregates metric values into the given aggregate byte representation Implementations of this method must read in the aggregate value from the buffer at the given position, aggregate the next element of data and write the updated aggregate value back into the buffer. Implementations must not change the position, limit or mark of the given buffer
        Specified by:
        aggregate in interface BufferAggregator
        Parameters:
        buf - byte buffer storing the byte array representation of the aggregate
        position - offset within the byte buffer at which the current aggregate value is stored
      • get

        public final Object get​(ByteBuffer buf,
                                int position)
        Description copied from interface: BufferAggregator
        Returns the intermediate object representation of the given aggregate. Converts the given byte buffer representation into an intermediate aggregate Object Implementations must not change the position, limit or mark of the given buffer. The object returned must not have any references to the given buffer (i.e., make a copy), since the underlying buffer is a shared resource and may be given to another processing thread while the objects returned by this aggregator are still in use. If the corresponding AggregatorFactory.combine(Object, Object) method for this aggregator expects its inputs to be mutable, then the object returned by this method must be mutable.
        Specified by:
        get in interface BufferAggregator
        Parameters:
        buf - byte buffer storing the byte array representation of the aggregate
        position - offset within the byte buffer at which the aggregate value is stored
        Returns:
        the Object representation of the aggregate
      • getFloat

        public final float getFloat​(ByteBuffer buf,
                                    int position)
        Description copied from interface: BufferAggregator
        Returns the float representation of the given aggregate byte array Converts the given byte buffer representation into the intermediate aggregate value. Implementations must not change the position, limit or mark of the given buffer Implementations are only required to support this method if they are aggregations which have an AggregatorFactory.getIntermediateType() ()} of ValueType.FLOAT. If unimplemented, throwing an UnsupportedOperationException is common and recommended.
        Specified by:
        getFloat in interface BufferAggregator
        Parameters:
        buf - byte buffer storing the byte array representation of the aggregate
        position - offset within the byte buffer at which the aggregate value is stored
        Returns:
        the float representation of the aggregate
      • getLong

        public final long getLong​(ByteBuffer buf,
                                  int position)
        Description copied from interface: BufferAggregator
        Returns the long representation of the given aggregate byte array Converts the given byte buffer representation into the intermediate aggregate value. Implementations must not change the position, limit or mark of the given buffer Implementations are only required to support this method if they are aggregations which have an AggregatorFactory.getIntermediateType() of of ValueType.LONG. If unimplemented, throwing an UnsupportedOperationException is common and recommended.
        Specified by:
        getLong in interface BufferAggregator
        Parameters:
        buf - byte buffer storing the byte array representation of the aggregate
        position - offset within the byte buffer at which the aggregate value is stored
        Returns:
        the long representation of the aggregate
      • getDouble

        public double getDouble​(ByteBuffer buffer,
                                int position)
        Description copied from interface: BufferAggregator
        Returns the double representation of the given aggregate byte array Converts the given byte buffer representation into the intermediate aggregate value. Implementations must not change the position, limit or mark of the given buffer Implementations are only required to support this method if they are aggregations which have an AggregatorFactory.getIntermediateType() of of ValueType.DOUBLE. If unimplemented, throwing an UnsupportedOperationException is common and recommended. The default implementation casts BufferAggregator.getFloat(ByteBuffer, int) to double. This default method is added to enable smooth backward compatibility, please re-implement it if your aggregators work with numeric double columns.
        Specified by:
        getDouble in interface BufferAggregator
        Parameters:
        buffer - byte buffer storing the byte array representation of the aggregate
        position - offset within the byte buffer at which the aggregate value is stored
        Returns:
        the double representation of the aggregate