Class CallerContext
- java.lang.Object
-
- org.apache.synapse.commons.throttle.core.CallerContext
-
- All Implemented Interfaces:
Serializable,Cloneable
- Direct Known Subclasses:
DomainBaseCallerContext,IPBaseCallerContext,RoleBaseCallerContext
public abstract class CallerContext extends Object implements Serializable, Cloneable
Contains all runtime data for a particular remote caller. provides the default rate based access controller algorithm implementation. This is not thread-safe- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description CallerContext(String ID)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleancanAccess(ThrottleContext throttleContext, CallerConfiguration configuration, long currentTime)Check whether that caller can access or not ,based on current state and pre-defined policyvoidcleanUpCallers(CallerConfiguration configuration, ThrottleContext throttleContext, long currentTime)Clean up the callers - remove all callers that have expired their time windowCallerContextclone()longgetFirstAccessTime()longgetGlobalCounter()StringgetId()longgetLocalCounter()longgetNextTimeWindow()Returns the next time windowStringgetRoleId()abstract intgetType()Gets type of throttle that this caller belong ex : ip/domainlonggetUnitTime()UUIDgetUuid()voidincrementGlobalCounter(int incrementBy)voidincrementLocalCounter()voidresetGlobalCounter()voidresetLocalCounter()voidsetFirstAccessTime(long firstAccessTime)voidsetGlobalCounter(long counter)voidsetLocalCounter(long counter)voidsetNextTimeWindow(long nextTimeWindow)voidsetRoleId(String roleId)voidsetUnitTime(long unitTime)
-
-
-
Constructor Detail
-
CallerContext
public CallerContext(String ID)
-
-
Method Detail
-
clone
public CallerContext clone() throws CloneNotSupportedException
- Overrides:
clonein classObject- Throws:
CloneNotSupportedException
-
getUuid
public UUID getUuid()
-
getId
public String getId()
- Returns:
- Returns Id of caller
-
cleanUpCallers
public void cleanUpCallers(CallerConfiguration configuration, ThrottleContext throttleContext, long currentTime)
Clean up the callers - remove all callers that have expired their time window- Parameters:
configuration- -The Configuration for this callerthrottleContext- -The Throttle that caller having passcurrentTime- -The system current time
-
canAccess
public boolean canAccess(ThrottleContext throttleContext, CallerConfiguration configuration, long currentTime) throws ThrottleException
Check whether that caller can access or not ,based on current state and pre-defined policy- Parameters:
throttleContext- -The Context for this caller - runtime stateconfiguration- -The Configuration for this caller - data from policycurrentTime- -The current system time- Returns:
- boolean -The boolean value which say access will allow or not
- Throws:
ThrottleException- throws for invalid throttle configuration
-
getNextTimeWindow
public long getNextTimeWindow()
Returns the next time window- Returns:
- long value of next time window
-
incrementGlobalCounter
public void incrementGlobalCounter(int incrementBy)
-
incrementLocalCounter
public void incrementLocalCounter()
-
getGlobalCounter
public long getGlobalCounter()
-
setGlobalCounter
public void setGlobalCounter(long counter)
-
setLocalCounter
public void setLocalCounter(long counter)
-
getLocalCounter
public long getLocalCounter()
-
resetLocalCounter
public void resetLocalCounter()
-
resetGlobalCounter
public void resetGlobalCounter()
-
getType
public abstract int getType()
Gets type of throttle that this caller belong ex : ip/domain- Returns:
- Returns the type of the throttle
-
getFirstAccessTime
public long getFirstAccessTime()
-
setFirstAccessTime
public void setFirstAccessTime(long firstAccessTime)
-
setNextTimeWindow
public void setNextTimeWindow(long nextTimeWindow)
-
getUnitTime
public long getUnitTime()
-
setUnitTime
public void setUnitTime(long unitTime)
-
getRoleId
public String getRoleId()
-
setRoleId
public void setRoleId(String roleId)
-
-