/*
* Copyright (c) 2006 jDiameter.
* https://jdiameter.dev.java.net/
*
* License: Sun Industry Standards Source License (SISSL)
*
* e-mail: erick.svenson@yahoo.com
*
*/
package org.jdiameter.api;
/**
* This interface allows to control the stack at overload moment
* @version 1.5.1 Final
*/
public interface OverloadManager {
/**
* Notify stack that parent application has overload
* @param id Overloaded application id (null for stack owner)
* @param type type of overload (CPU, Memory..)
* @param value value of overload
*/
void parentAppOverloadDetected(ApplicationId id, int type, double value);
/**
* Notifies stack that parent application has overload cased
* @param id Overloaded application id (null for stack owner)
* @param type type of overload (CPU, Memory..)
*/
void parentAppOverloadCeased(ApplicationId id, int type);
/**
* Append overload listener
* @param listener overload listener instance
* @param lowThreshold low value of overload threshold (for example 0.8 - 1.0 is overload Range)
* @param highThreshold high value of overload threshold (for example 0.8 - 1.0 is overload Range)
* @param qIndex overload elenent index
*/
void addOverloadListener(OverloadListener listener, double lowThreshold, double highThreshold, int qIndex);
/**
* Remove overload listener
* @param listener overload listener instance
* @param qIndex overload elenent index
*/
void removeOverloadListener(OverloadListener listener, int qIndex);
}