Package tigase.server.xmppclient

## Class RegistrationThrottling

- java.lang.Object
- - tigase.server.xmppclient.RegistrationThrottling

- All Implemented Interfaces:
    `UnregisterAware`

      @Bean(name="registration-throttling",
            parent=Kernel.class,
            active=false,
            exportable=true)
      public class RegistrationThrottling
      extends java.lang.Object
      implements UnregisterAware

  Created by andrzej on 19.11.2016.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `RegistrationThrottling.CleanUpTask` |

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `ID` |
    `protected java.lang.Integer` | `limit` |
    `protected java.time.Duration` | `period` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RegistrationThrottling()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `beforeUnregister()` | Method called before bean unregister.
    `protected boolean` | `checkLimits​(XMPPIOService service)` |
    `protected boolean` | `checkLimits​(XMPPIOService service, Packet packet)` |
    `protected void` | `cleanUp​(java.util.List<java.lang.Long> registrationTimes)` |
    `protected void` | `cleanUpFromTimer()` |
    `protected void` | `scheduleCleanUpIfNeeded()` |
    `void` | `startFor​(Kernel kernel)` |
    `void` | `stopFor​(Kernel kernel)` |

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

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

- - ### Field Detail

    - #### ID

          public static final java.lang.String ID

      See Also:
        Constant Field Values

    - #### limit

          @ConfigField(desc="Limit of allowed account registrations for IP in specified period")
          protected java.lang.Integer limit

    - #### period

          @ConfigField(desc="Period for which limit is set")
          protected java.time.Duration period

  - ### Constructor Detail

    - #### RegistrationThrottling

          public RegistrationThrottling()

  - ### Method Detail

    - #### startFor

          public void startFor​(Kernel kernel)

    - #### stopFor

          public void stopFor​(Kernel kernel)

    - #### beforeUnregister

          public void beforeUnregister()

      Description copied from interface: `UnregisterAware`
      Method called before bean unregister.
      Specified by:
        `beforeUnregister` in interface `UnregisterAware`

    - #### checkLimits

          protected boolean checkLimits​(XMPPIOService service)

    - #### checkLimits

          protected boolean checkLimits​(XMPPIOService service,
                                        Packet packet)

    - #### cleanUp

          protected void cleanUp​(java.util.List<java.lang.Long> registrationTimes)

    - #### cleanUpFromTimer

          protected void cleanUpFromTimer()

    - #### scheduleCleanUpIfNeeded

          protected void scheduleCleanUpIfNeeded()