com.espertech.esper.client.util.CountMinSketchAgent Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of esper Show documentation
Show all versions of esper Show documentation
Complex event processing and event series analysis component
/*
***************************************************************************************
* Copyright (C) 2006 EsperTech, Inc. All rights reserved. *
* http://www.espertech.com/esper *
* http://www.espertech.com *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the GPL license *
* a copy of which has been included with this distribution in the license.txt file. *
***************************************************************************************
*/
package com.espertech.esper.client.util;
/**
* For use with Count-min sketch aggregation functions:
* The agent implementation encapsulates transformation of value objects to byte-array and back (when needed),
* and may override or provide custom behavior.
*/
public interface CountMinSketchAgent {
/**
* Returns an array of types that the agent can handle, for validation purposes.
* For example, an agent that accepts byte-array type values should return "new Class[] {String.class}".
* Interfaces and supertype classes can also be part of the class array.
*
* @return class array of acceptable type
*/
public Class[] getAcceptableValueTypes();
/**
* Add a value to the Count-min sketch.
* Implementations typically check for null value, convert the value object to a byte-array
* and invoke a method on the state object to add the byte-array value.
*
* @param ctx contains value to add as well as the state
*/
public void add(CountMinSketchAgentContextAdd ctx);
/**
* Return the estimated count for a given value.
* Implementations typically check for null value, convert the value object to a byte-array
* and invoke a method on the state object to retrieve a count.
*
* @param ctx contains value to query as well as the state
* @return estimated count
*/
public Long estimate(CountMinSketchAgentContextEstimate ctx);
/**
* Return the value object for a given byte-array, for use with top-K.
* Implementations typically simply convert a byte-array into a value object.
*
* @param ctx value object and state
* @return value object
*/
public Object fromBytes(CountMinSketchAgentContextFromBytes ctx);
}