org.apache.synapse.commons.throttle.core

## Class CallerContext

- java.lang.Object
- - org.apache.synapse.commons.throttle.core.CallerContext

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable
  Direct Known Subclasses:
    DomainBaseCallerContext, IPBaseCallerContext, RoleBaseCallerContext

      public abstract class CallerContext
      extends java.lang.Object
      implements java.io.Serializable, java.lang.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 and Description
    `CallerContext(java.lang.String ID)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canAccess(ThrottleContext throttleContext, CallerConfiguration configuration, long currentTime)` Check whether that caller can access or not ,based on current state and pre-defined policy
    `void` | `cleanUpCallers(CallerConfiguration configuration, ThrottleContext throttleContext, long currentTime)` Clean up the callers - remove all callers that have expired their time window
    `CallerContext` | `clone()`
    `long` | `getFirstAccessTime()`
    `long` | `getGlobalCounter()`
    `java.lang.String` | `getId()`
    `long` | `getLocalCounter()`
    `long` | `getNextTimeWindow()` Returns the next time window
    `java.lang.String` | `getRoleId()`
    `abstract int` | `getType()` Gets type of throttle that this caller belong ex : ip/domain
    `long` | `getUnitTime()`
    `java.util.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(java.lang.String roleId)`
    `void` | `setUnitTime(long unitTime)`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CallerContext

          public CallerContext(java.lang.String ID)

  - ### Method Detail

    - #### clone

          public CallerContext clone()
                              throws java.lang.CloneNotSupportedException

      Overrides:
        `clone` in class `java.lang.Object`
      Throws:
        `java.lang.CloneNotSupportedException`

    - #### getUuid

          public java.util.UUID getUuid()

    - #### getId

          public java.lang.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

    - #### 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 java.lang.String getRoleId()

    - #### setRoleId

          public void setRoleId(java.lang.String roleId)

Copyright © 2005-2022 Apache Software Foundation. All Rights Reserved.