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 boolean
canAccess(ThrottleContext throttleContext, CallerConfiguration configuration, long currentTime)
Check whether that caller can access or not ,based on current state and pre-defined policyvoid
cleanUpCallers(CallerConfiguration configuration, ThrottleContext throttleContext, long currentTime)
Clean up the callers - remove all callers that have expired their time windowCallerContext
clone()
long
getFirstAccessTime()
long
getGlobalCounter()
String
getId()
long
getLocalCounter()
long
getNextTimeWindow()
Returns the next time windowString
getRoleId()
abstract int
getType()
Gets type of throttle that this caller belong ex : ip/domainlong
getUnitTime()
UUID
getUuid()
void
incrementGlobalCounter(int incrementBy)
void
incrementLocalCounter()
void
resetGlobalCounter()
void
resetLocalCounter()
void
setFirstAccessTime(long firstAccessTime)
void
setGlobalCounter(long counter)
void
setLocalCounter(long counter)
void
setNextTimeWindow(long nextTimeWindow)
void
setRoleId(String roleId)
void
setUnitTime(long unitTime)
-
-
-
Constructor Detail
-
CallerContext
public CallerContext(String ID)
-
-
Method Detail
-
clone
public CallerContext clone() throws CloneNotSupportedException
- Overrides:
clone
in 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)
-
-