ru.bitel.bgbilling.kernel.network.radius

## Class RadiusListener<N extends ru.bitel.bgbilling.kernel.network.radius.nas.Nas<?,?,?>>

- java.lang.Object
- - ru.bitel.common.io.DatagramChannelListener
  - - ru.bitel.bgbilling.kernel.network.radius.RadiusListener<N>

- Type Parameters:
    `N` -
  All Implemented Interfaces:
    java.lang.Runnable, ru.bitel.bgbilling.kernel.network.processor.ProcessorListener, ru.bitel.common.worker.ThreadContextFactory<ru.bitel.common.worker.ThreadContext>
  Direct Known Subclasses:
    InetRadiusListener

      public class RadiusListener<N extends ru.bitel.bgbilling.kernel.network.radius.nas.Nas<?,?,?>>
      extends ru.bitel.common.io.DatagramChannelListener
      implements ru.bitel.bgbilling.kernel.network.processor.ProcessorListener

  Слушатель радиус пакетов.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `RadiusListener.Mode`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static bitel.billing.server.util.RequestCounter` | `accountingStartCounter` Deprecated.
    `static bitel.billing.server.util.RequestCounter` | `accountingStopCounter` Deprecated.
    `static bitel.billing.server.util.RequestCounter` | `accountingUpdateCounter` Deprecated.
    `static bitel.billing.server.util.RequestCounter` | `accountingUpdateIgnoreCount` Deprecated.
    `static bitel.billing.server.util.RequestCounter` | `antispamIgnoreCount` Deprecated.
    `static bitel.billing.server.util.RequestCounter` | `authenticationAcceptCounter` Deprecated.
    `static bitel.billing.server.util.RequestCounter` | `authenticationIgnoreCount` Deprecated.
    `static bitel.billing.server.util.RequestCounter` | `authenticationRejectCounter` Deprecated.
    `protected ru.bitel.bgbilling.kernel.network.radius.datalog.hourly.RadiusHourlyDataLogger` | `dataLogger`
    `protected RadiusListener.Mode` | `mode`
    `protected RadiusProcessor<?,N,?>` | `processor`
    `protected Setup` | `setup`
    `protected java.lang.String` | `threadCountParamName`
    `protected java.lang.String` | `threadQueueParamName`

    - ### Fields inherited from class ru.bitel.common.io.DatagramChannelListener

      `byteBufferCapacity, channel, directByteBuffer, host, inited, maxPacketSize, port, selector`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RadiusListener(java.lang.String host, int port, int byteBufferCapacity, int socketRcvBuf, RadiusProcessor<?,N,?> processor, RadiusListener.Mode mode, Setup setup, ru.bitel.bgbilling.kernel.network.radius.datalog.hourly.RadiusHourlyDataLogger dataLogger, int threadCount, int maxQueueSize, java.lang.Boolean defaultAutoCommit)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getActiveThreadCount()`
    `int` | `getCurrentThreadCount()`
    `int` | `getMaxQueueSize()`
    `long` | `getQueueSize()`
    `int` | `getSlow1QueueSize()`
    `int` | `getSlow2QueueSize()`
    `long` | `getTaskCount()`
    `int` | `getThreadCount()`
    `boolean` | `isSkipAccountingRequestsOnSlow()`
    `ru.bitel.bgbilling.kernel.network.processor.ProcessorRequest<?>` | `newRequest(java.net.SocketAddress clientAddress, long millis, java.nio.ByteBuffer data, int overloadLevel)`
    `ru.bitel.common.worker.ThreadContext` | `newThreadContext()`
    `void` | `onPacket(java.net.SocketAddress clientAddress, java.nio.ByteBuffer data)`
    `void` | `setMaxQueueSize(int maxQueueSize)`
    `void` | `setSkipAccountingRequestsOnSlow(boolean skipAccountingRequestsOnSlow)`
    `void` | `setThreadCount(int count)`
    `java.lang.Thread` | `startListener()`
    `java.lang.String` | `toString()`
    `protected void` | `toString(java.lang.StringBuilder result)`

    - ### Methods inherited from class ru.bitel.common.io.DatagramChannelListener

      `init, run, select, send, sendResponse, setReuseAddress, shutdown`

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

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

    - ### Methods inherited from interface ru.bitel.bgbilling.kernel.network.processor.ProcessorListener

      `send`

- - ### Field Detail

    - #### accountingStartCounter

          @Deprecated
          public static bitel.billing.server.util.RequestCounter accountingStartCounter

      Deprecated.

    - #### accountingStopCounter

          @Deprecated
          public static bitel.billing.server.util.RequestCounter accountingStopCounter

      Deprecated.

    - #### accountingUpdateCounter

          @Deprecated
          public static bitel.billing.server.util.RequestCounter accountingUpdateCounter

      Deprecated.

    - #### authenticationAcceptCounter

          @Deprecated
          public static bitel.billing.server.util.RequestCounter authenticationAcceptCounter

      Deprecated.

    - #### authenticationRejectCounter

          @Deprecated
          public static bitel.billing.server.util.RequestCounter authenticationRejectCounter

      Deprecated.

    - #### authenticationIgnoreCount

          @Deprecated
          public static bitel.billing.server.util.RequestCounter authenticationIgnoreCount

      Deprecated.

    - #### accountingUpdateIgnoreCount

          @Deprecated
          public static bitel.billing.server.util.RequestCounter accountingUpdateIgnoreCount

      Deprecated.

    - #### antispamIgnoreCount

          @Deprecated
          public static bitel.billing.server.util.RequestCounter antispamIgnoreCount

      Deprecated.

    - #### mode

          protected final RadiusListener.Mode mode

    - #### setup

          protected final Setup setup

    - #### processor

          protected final RadiusProcessor<?,N extends ru.bitel.bgbilling.kernel.network.radius.nas.Nas<?,?,?>,?> processor

    - #### dataLogger

          protected final ru.bitel.bgbilling.kernel.network.radius.datalog.hourly.RadiusHourlyDataLogger dataLogger

    - #### threadCountParamName

          protected java.lang.String threadCountParamName

    - #### threadQueueParamName

          protected java.lang.String threadQueueParamName

  - ### Constructor Detail

    - #### RadiusListener

          @ConstructorProperties(value={"host","port","recvBufferSize","soRCVBUF","processor","mode","setup","dataLogger","threadCount","maxQueueSize","defaultAutoCommit"})
          public RadiusListener(java.lang.String host,
                                                                                                                                                                                                   int port,
                                                                                                                                                                                                   int byteBufferCapacity,
                                                                                                                                                                                                   int socketRcvBuf,
                                                                                                                                                                                                   RadiusProcessor<?,N,?> processor,
                                                                                                                                                                                                   RadiusListener.Mode mode,
                                                                                                                                                                                                   Setup setup,
                                                                                                                                                                                                   ru.bitel.bgbilling.kernel.network.radius.datalog.hourly.RadiusHourlyDataLogger dataLogger,
                                                                                                                                                                                                   int threadCount,
                                                                                                                                                                                                   int maxQueueSize,
                                                                                                                                                                                                   java.lang.Boolean defaultAutoCommit)

      Parameters:
        `host` -
        `port` -
        `byteBufferCapacity` - буфер на поток
        `socketRcvBuf` - рекомендуемый буфер сокета
        `processor` -
        `mode` -
        `setup` -
        `dataLogger` - RadiusHourlyDataLogger, если нужно сохранять логи
        `threadCount` - количество потоков или 0, если брать из setup
        `maxQueueSize` - размер очереди или 0, если брать из setup

  - ### Method Detail

    - #### newThreadContext

          public ru.bitel.common.worker.ThreadContext newThreadContext()

      Specified by:
        `newThreadContext` in interface `ru.bitel.common.worker.ThreadContextFactory<ru.bitel.common.worker.ThreadContext>`

    - #### newRequest

          public ru.bitel.bgbilling.kernel.network.processor.ProcessorRequest<?> newRequest(java.net.SocketAddress clientAddress,
                                                                                            long millis,
                                                                                            java.nio.ByteBuffer data,
                                                                                            int overloadLevel)

      Specified by:
        `newRequest` in interface `ru.bitel.bgbilling.kernel.network.processor.ProcessorListener`

    - #### onPacket

          public void onPacket(java.net.SocketAddress clientAddress,
                               java.nio.ByteBuffer data)

      Overrides:
        `onPacket` in class `ru.bitel.common.io.DatagramChannelListener`

    - #### startListener

          public java.lang.Thread startListener()

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### toString

          protected void toString(java.lang.StringBuilder result)

    - #### getThreadCount

          public int getThreadCount()

    - #### setThreadCount

          public void setThreadCount(int count)

    - #### getMaxQueueSize

          public int getMaxQueueSize()

    - #### setMaxQueueSize

          public void setMaxQueueSize(int maxQueueSize)

    - #### getSlow1QueueSize

          public int getSlow1QueueSize()

    - #### getSlow2QueueSize

          public int getSlow2QueueSize()

    - #### getCurrentThreadCount

          public int getCurrentThreadCount()

    - #### getActiveThreadCount

          public int getActiveThreadCount()

    - #### getTaskCount

          public long getTaskCount()

    - #### getQueueSize

          public long getQueueSize()

    - #### isSkipAccountingRequestsOnSlow

          public boolean isSkipAccountingRequestsOnSlow()

    - #### setSkipAccountingRequestsOnSlow

          public void setSkipAccountingRequestsOnSlow(boolean skipAccountingRequestsOnSlow)