## Uses of Class
org.apache.synapse.commons.throttle.core.ThrottleContext

- Packages that use ThrottleContext
  Package | Description
  --- | ---
  org.apache.synapse.commons.throttle.core |
  org.apache.synapse.commons.throttle.core.factory |
  org.apache.synapse.commons.throttle.core.impl.domainbase |
  org.apache.synapse.commons.throttle.core.impl.ipbase |
  org.apache.synapse.commons.throttle.core.impl.rolebase |
  org.apache.synapse.commons.throttle.core.internal |

- - ### Uses of ThrottleContext in org.apache.synapse.commons.throttle.core

    Methods in org.apache.synapse.commons.throttle.core that return ThrottleContext
    Modifier and Type | Method | Description
    --- | --- | ---
    `ThrottleContext` | Throttle.`getThrottleContext​(String contextID)` | Returns the ThrotleContext for a given key - context holds all runtime data for registered callers
    `ThrottleContext` | ThrottleDataHolder.`getThrottleContext​(String applicationId)` |

    Methods in org.apache.synapse.commons.throttle.core with parameters of type ThrottleContext
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | Throttle.`addThrottleContext​(String key, ThrottleContext throttleContext)` | Adds a ThrotleContext with the given key - context holds all runtime data for registered callers
    `void` | ThrottleContextCleanupTask.`addThrottleContext​(ThrottleContext throttleContext)` |
    `void` | ThrottleDataHolder.`addThrottleContext​(String applicationId, ThrottleContext applicationThrottleContext)` |
    `AccessInformation` | AccessRateController.`canAccess​(ThrottleContext throttleContext, String callerID, int callerType)` | To check whether caller can access not not base on the controlling policy
    `boolean` | CallerContext.`canAccess​(ThrottleContext throttleContext, CallerConfiguration configuration, long currentTime)` | Check whether that caller can access or not ,based on current state and pre-defined policy
    `AccessInformation` | RoleBasedAccessRateController.`canAccess​(ThrottleContext throttleContext, String consumerKey, String roleID)` | To check whether caller can access not not base on the controlling policy
    `void` | CallerContext.`cleanUpCallers​(CallerConfiguration configuration, ThrottleContext throttleContext, long currentTime)` | Clean up the callers - remove all callers that have expired their time window

  - ### Uses of ThrottleContext in org.apache.synapse.commons.throttle.core.factory

    Methods in org.apache.synapse.commons.throttle.core.factory that return ThrottleContext
    Modifier and Type | Method | Description
    --- | --- | ---
    `static ThrottleContext` | ThrottleContextFactory.`createThrottleContext​(int throttletype, ThrottleConfiguration configuration)` | To create a ThrottleContext for the given throttle type Needs to provide a throttle configuration

  - ### Uses of ThrottleContext in org.apache.synapse.commons.throttle.core.impl.domainbase

    Subclasses of ThrottleContext in org.apache.synapse.commons.throttle.core.impl.domainbase
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `DomainBaseThrottleContext` | Holds all the run time data for all domain based remote callers

  - ### Uses of ThrottleContext in org.apache.synapse.commons.throttle.core.impl.ipbase

    Subclasses of ThrottleContext in org.apache.synapse.commons.throttle.core.impl.ipbase
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `IPBaseThrottleContext` | Holds all the run time data for all IP based remote callers

  - ### Uses of ThrottleContext in org.apache.synapse.commons.throttle.core.impl.rolebase

    Subclasses of ThrottleContext in org.apache.synapse.commons.throttle.core.impl.rolebase
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `RoleBaseThrottleContext` |

  - ### Uses of ThrottleContext in org.apache.synapse.commons.throttle.core.internal

    Methods in org.apache.synapse.commons.throttle.core.internal with parameters of type ThrottleContext
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | DistributedThrottleProcessor.`canAccessBasedOnUnitTime​(CallerContext callerContext, CallerConfiguration configuration, ThrottleContext throttleContext, RequestContext requestContext)` |
    `boolean` | DistributedThrottleProcessor.`canAccessIfUnitTimeNotOver​(CallerContext callerContext, CallerConfiguration configuration, ThrottleContext throttleContext, RequestContext requestContext)` |
    `boolean` | DistributedThrottleProcessor.`canAccessIfUnitTimeOver​(CallerContext callerContext, CallerConfiguration configuration, ThrottleContext throttleContext, RequestContext requestContext)` |