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:
  • Constructor Details

    • CallerContext

      public CallerContext(String ID)
  • Method Details

    • clone

      Overrides:
      clone in class Object
      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 caller
      throttleContext - -The Throttle that caller having pass
      currentTime - -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 state
      configuration - -The Configuration for this caller - data from policy
      currentTime - -The current system time
      Returns:
      boolean -The boolean value which say access will allow or not
      Throws:
      ThrottleException - throws for invalid throttle configuration
    • canAccess

      public boolean canAccess(ThrottleContext throttleContext, CallerConfiguration configuration, long currentTime, Long eventCount) 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 state
      configuration - -The Configuration for this caller - data from policy
      currentTime - -The current system time
      eventCount - -The event count
      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()
    • setLocalHits

      public void setLocalHits(long counter)
    • getLocalHits

      public long getLocalHits()
    • incrementLocalHits

      public void incrementLocalHits()
    • 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)
    • setIsThrottleParamSyncingModeSync

      public void setIsThrottleParamSyncingModeSync(boolean isThrottleParamSyncingModeSync)
    • isThrottleParamSyncingModeSync

      public boolean isThrottleParamSyncingModeSync()
    • getLocalQuota

      public long getLocalQuota()
    • setLocalQuota

      public void setLocalQuota(long localQuota)
    • getNextAccessTime

      public long getNextAccessTime()
    • setNextAccessTime

      public void setNextAccessTime(long nextAccessTime)